高分求一个sql写的des加密算法存储过程,分不够再加。用于 sql server 高分求一个sql写的des加密算法存储过程,分不够再加。用于 sql server 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么非要在sql里面写,程序里面写减少服务器负担 是啊,为什么要在SQL里面写啊,这样不是搞复杂了吗 程序里面,服务器里面都要写。防止别人直接监听获取我的明文。这个算法的用途是用作软件使用权的网络验证,防爆破组成的一部分。顺便说下我的做法,看看大家有什么可以指点的,欢迎扔砖头随机生成一个密匙B对密匙B加密假设B为:000,使用固定密匙'999'des加密得到B'现在利用B'作为密匙对需要传输的重要数据A进行des加密假设A为:1111111,使用密匙B'加密得到A'密匙B和重要数据A都加密后,才返回给客户端那么客户端接收到的数据就是A'和B'由于B是随机生成的,所以B'每次都不一样B'每次不一样,那么A'也每次不一样这样爆破手每次捕捉到的数据都不一样,会增加他的爆破难度 上面的打错字了这个为准----------------------------------随机生成一个密匙B对密匙B加密假设B为:000,使用固定密匙'999'des加密得到B'现在利用B作为密匙对需要传输的重要数据A进行des加密假设A为:1111111,使用密匙B加密得到A'密匙B和重要数据A都加密后,才返回给客户端那么客户端接收到的数据就是A'和B'由于B是随机生成的,所以B'每次都不一样B每次不一样,那么A'也每次不一样---------------客户端还原过程:B'利用固定密匙'999'还原成BA'利用B再还原成A 1.用Delphi写一个MSSQL可识别的dll2.在MSSQL中挂接 SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_PwdCrypt]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[fn_PwdCrypt]GO CREATE FUNCTION dbo.fn_PwdCrypt(@ptSource varchar(255), @ptPassword varchar(255)) RETURNS varbinary(64)BEGIN DECLARE @tdest varchar(255), @lteller int, @lPasswTeller int, @cnt int, @len int, @tFinal varbinary(64) SELECT @tFinal = Convert(varbinary(64),'') SELECT @len = Len(@ptSource) SELECT @lteller = 1 SELECT @tdest = @ptSource SELECT @lPasswTeller = 0 WHILE @lteller <= @len BEGIN SELECT @lPasswTeller = @lPasswTeller - 1 If @lPasswTeller < 1 SELECT @lPasswTeller = Len(@ptPassword) SELECT @tfinal = @tfinal + Convert(varbinary(64),Stuff(Substring(@tdest, @lteller, 1),1,Len( Char(Ascii(Substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1)))), Char(Ascii(Substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1))) ) ) SELECT @lteller = @lteller + 1 END RETURN @tfinal END GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_PwdDeCrypt]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[fn_PwdDeCrypt]GO CREATE FUNCTION dbo.fn_PwdDeCrypt(@ptSource varchar(255), @ptPassword varchar(255)) RETURNS varchar(255)BEGIN DECLARE @tdest varchar(255), @lteller int, @lPasswTeller int, @cnt int, @len int, @tFinal varchar(255) SELECT @tFinal = '' SELECT @len = Len(@ptSource) SELECT @lteller = 1 SELECT @tdest = @ptSource SELECT @lPasswTeller = 0 WHILE @lteller <= @len BEGIN SELECT @lPasswTeller = @lPasswTeller - 1 If @lPasswTeller < 1 SELECT @lPasswTeller = Len(@ptPassword) SELECT @tfinal = @tfinal + Left(Stuff(substring(@tdest, @lteller, 1),1,Len( Char(Ascii(substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1)))), Char(Ascii(Substring(@ptSource, @lteller, 1)) ^ Ascii(Substring(@ptPassword, @lPasswTeller, 1))) ), 1) SELECT @lteller = @lteller+1 END RETURN @tfinal END GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO --Test it herecreate table #temp ( pwd varbinary(64)) insert into #temp (pwd)select dbo.fn_PwdCrypt ('MyPassword','secret') select pwd from #tempselect dbo.fn_PwdDeCrypt (pwd,'secret') from #tempdrop table #temp DES Encryption/Decryption Function hongqi162,厉害。这样的好东西,你应该开博传授,不应该独自享用 数据包的生命周期 求教dbgrideh memo 多表关联显示的问题 dbgrid能实现类似excel样式的二维表吗? 我在Service類程序中抓屏不了 请教:dll中创建的窗体如何显示在主窗口的容器中 在客户端如何实现对服务器端文件的操作 HELP!!!!!!!!!! 数据库问题 请教各位大侠,如何获得NT系统的当前CPU占有率???(送分来了) listview 不让他显示最后一列 请教各位关于编写自定义的事件处理函数的问题 为什么用流写入TXT数据不完整? 散分,奸问个问题,不可视控件的问题
这个算法的用途是用作软件使用权的网络验证,防爆破组成的一部分。顺便说下我的做法,看看大家有什么可以指点的,欢迎扔砖头
随机生成一个密匙B
对密匙B加密
假设B为:000,使用固定密匙'999'des加密得到B'现在利用B'作为密匙对需要传输的重要数据A进行des加密
假设A为:1111111,使用密匙B'加密得到A'密匙B和重要数据A都加密后,才返回给客户端
那么客户端接收到的数据就是A'和B'
由于B是随机生成的,所以B'每次都不一样
B'每次不一样,那么A'也每次不一样
这样爆破手每次捕捉到的数据都不一样,会增加他的爆破难度
这个为准
----------------------------------随机生成一个密匙B
对密匙B加密
假设B为:000,使用固定密匙'999'des加密得到B'现在利用B作为密匙对需要传输的重要数据A进行des加密
假设A为:1111111,使用密匙B加密得到A'密匙B和重要数据A都加密后,才返回给客户端
那么客户端接收到的数据就是A'和B'
由于B是随机生成的,所以B'每次都不一样
B每次不一样,那么A'也每次不一样---------------
客户端还原过程:
B'利用固定密匙'999'还原成B
A'利用B再还原成A
1.用Delphi写一个MSSQL可识别的dll
2.在MSSQL中挂接
DES Encryption/Decryption Function