关于sqlserver加密的问题

twvampire123 2015-03-14 03:49:38
这个是dephi的

const
XorKey: array[0..7] of Byte = ($B2, $09, $BB, $55, $93, $6D, $44, $47); //字符串加密用

function Enc(Str: string): string; //字符加密函數 這是用的一個異或加密
var
i, j: Integer;
begin
Result := '';
j := 0;
for i := 1 to Length(Str) do
begin
Result := Result + IntToHex(Byte(Str[i]) xor XorKey[j], 2);
j := (j + 1) mod 8;
end;
end;

现在想用sqlserver实现,求大神了~~~~
...全文
243 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
flybirding10011 2018-07-05
  • 打赏
  • 举报
回复
@binary@binary@binary
twvampire123 2015-03-16
  • 打赏
  • 举报
回复
引用 5 楼 oraclecaicai 的回复:
有些内部的过程和函数在联机丛书里查不到,建议多多尝试自己发掘: SELECT * FROM master.dbo.sysobjects WHERE name LIKE '%hex%'
。。。我要的是上面的问题,你回答我的是fn_函数的,,这个函数不能用的,因为我看了下,我现在想要的是des的
oraclecaicai 2015-03-16
  • 打赏
  • 举报
回复
有些内部的过程和函数在联机丛书里查不到,建议多多尝试自己发掘: SELECT * FROM master.dbo.sysobjects WHERE name LIKE '%hex%'
twvampire123 2015-03-16
  • 打赏
  • 举报
回复
自己顶下,,怎么就只有1个人回答,,,,
twvampire123 2015-03-16
  • 打赏
  • 举报
回复
引用 2 楼 sxycgxj 的回复:
没有做过,给你个思路: 1.数组可以用临时表的方式来实现 2 IntToHex函数可以参与:

--十进制转为十六进制
 
DECLARE 
@binary varbinary(255), 
@str_return varchar(255) 
 
SELECT 
@binary = CONVERT(varbinary(255),29327795562177529) 
  
EXEC master.dbo.xp_varbintohexstr @binary, @str_return OUTPUT 
SELECT 
结果 = reverse(@str_return)
3.SQL中的异或运算符 ^
我的是08,怎么没有 master.dbo.xp_varbintohexstr
oraclecaicai 2015-03-16
  • 打赏
  • 举报
回复

CREATE TABLE dbo.XorKeys
(
    id     tinyint
,   xorkey binary(1)
)

INSERT INTO XorKeys VALUES ( 0, 0xB2 )
INSERT INTO XorKeys VALUES ( 1, 0x09 )
INSERT INTO XorKeys VALUES ( 2, 0xBB )
INSERT INTO XorKeys VALUES ( 3, 0x55 )
INSERT INTO XorKeys VALUES ( 4, 0x93 )
INSERT INTO XorKeys VALUES ( 5, 0x6D )
INSERT INTO XorKeys VALUES ( 6, 0x44 )
INSERT INTO XorKeys VALUES ( 7, 0x47 )

CREATE FUNCTION dbo.Enc
(
    @Str varchar(255)
)
RETURNS varchar(255)
AS
BEGIN
    
    DECLARE @XorKeys TABLE
    (
        id     tinyint
    ,   xorkey binary(1)
    )
    
    INSERT INTO @XorKeys SELECT id, xorkey FROM XorKeys
    
    DECLARE @i      int       = 1
    ,       @j      int       = 0
    ,       @char   char(1)
    ,       @xorkey binary(1)
    
    DECLARE @Result VARCHAR(255) = ''
    
    WHILE @i <= LEN(@Str)
    BEGIN
        SELECT @char   = SUBSTRING(@Str, @i, 1)
        ,      @xorkey = ( SELECT xorkey FROM @XorKeys WHERE id = @j )
        
        SELECT @Result = @Result + sys.fn_varbintohexsubstring(0, CONVERT(TINYINT, CONVERT(BINARY(1), @char)) ^ @xorkey, 1, 0)
        
        SELECT @i = @i + 1
        ,      @j = (@j + 1) % 8
    END
    
    RETURN @Result
    
END
云中客 2015-03-14
  • 打赏
  • 举报
回复
没有做过,给你个思路: 1.数组可以用临时表的方式来实现 2 IntToHex函数可以参与:

--十进制转为十六进制
 
DECLARE 
@binary varbinary(255), 
@str_return varchar(255) 
 
SELECT 
@binary = CONVERT(varbinary(255),29327795562177529) 
  
EXEC master.dbo.xp_varbintohexstr @binary, @str_return OUTPUT 
SELECT 
结果 = reverse(@str_return)
3.SQL中的异或运算符 ^
twvampire123 2015-03-14
  • 打赏
  • 举报
回复
没人回答吗,,,,
本课程根据讲师十多年在世界500强外企的生产环境中的SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程中不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境中实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境中,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业中较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验中SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL Server(SQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧