用SQL2005以上版本,可用CLR自定義規則.規則最好還是封裝在程序里
use Tempdb
go
if object_ID('fn_ACITEncryption') is not null
drop function fn_ACITEncryption
go
create function fn_ACITEncryption
(
@Str nvarchar(4000),--加密的字符串
@Flag bit=1,--1、加密 0、解密
@Key nvarchar(50)--密文
)
returns nvarchar(4000)--這里可轉換成二進制
with Encryption
as
begin
Declare @LenStr int,@i int,@Str2 nvarchar(4000),@Split nvarchar(2),@LenKey int
select @Str=@Str+'A',@LenStr=len(@Str),@i=1,@Str2='',@LenKey=Len(@Key+'A')-1
while @i<@LenStr
select @Split=substring(@Str,@i,1),
@Split=nchar((unicode(@Split)+case @Flag when 1 then unicode(substring(@Key+'A',@i%@LenKey+1,1))-1
when 0 then 65535-unicode(substring(@Key+'A',@i%@LenKey+1,1))
else 0 end)%65535+cast(@Flag as int)),
@Str2=@Str2+@Split,@i=@i+1
return @Str2
end
go
select dbo.fn_ACITEncryption(N'Roy',1,'123') as 加密后字符串
/*
加密后字符串
------------------------------
¢ª
(1 個資料列受到影響)
*/
select dbo.fn_ACITEncryption(N'¢ª',0,'123') as 解密后字符串
/*
解密后字符串
--------------------------
Roy
(1 個資料列受到影響)
*/
http://blog.csdn.net/roy_88/archive/2009/11/12/4801917.aspx
147 个解决方案
#1
SF
學習~~
學習~~
#2
SF
#3
多谢
#4
学习 大版强大
#5
哇,厲害。學習一下
#6
在SQL2000下運行也通過,強大,正好可以用來做一個密碼保存的功能
#7
.
#8
大版的这个貌似使用的古典密码,好像是凯撒密码,,这个可以通过分析词出现的频率来进行解密
#9
學習~~
#10
看
#11
收藏研究一下
#12
版版自己加精了吧
#13
#14
学习
#15
嗯
#16
歡迎大家討論,分享自己處理方法。
#17
学习
#18
数据的加密与解密,有一本电子工业出版社出版的 密码学与网络安全 ,里面的内容很详细。
#19
very good!
#21
顶
#22
好,好,就用这个来弄了!~
#23
强烈表扬一下.
#24
#25
学习...
#26
学习...
#27
非常好学习
#28
又学到了东西
#29
收藏
#30
學習一下
#31
(⊙o⊙)
#32
学习了
#33
强大,学习学习!
#34
支持一下
#35
回帖
#36
顶一下,学习
#37
强大,学习了
#38
学习
#39
D
#40
学习
#41
学习啦
#42
分享
#43
学习,收藏
#44
..
#45
up
#46
jidajidajid基督教埃及嗲就嗲时间段
#47
#48
学习
#49
还没遇到过场景。。。先收下。
#50
大学的时候,SQL老师提过,但是没有具体讲
#1
SF
學習~~
學習~~
#2
SF
#3
多谢
#4
学习 大版强大
#5
哇,厲害。學習一下
#6
在SQL2000下運行也通過,強大,正好可以用來做一個密碼保存的功能
#7
.
#8
大版的这个貌似使用的古典密码,好像是凯撒密码,,这个可以通过分析词出现的频率来进行解密
#9
學習~~
#10
看
#11
收藏研究一下
#12
版版自己加精了吧
#13
#14
学习
#15
嗯
#16
歡迎大家討論,分享自己處理方法。
#17
学习
#18
数据的加密与解密,有一本电子工业出版社出版的 密码学与网络安全 ,里面的内容很详细。
#19
very good!
#20
#21
顶
#22
好,好,就用这个来弄了!~
#23
强烈表扬一下.
#24
#25
学习...
#26
学习...
#27
非常好学习
#28
又学到了东西
#29
收藏
#30
學習一下
#31
(⊙o⊙)
#32
学习了
#33
强大,学习学习!
#34
支持一下
#35
回帖
#36
顶一下,学习
#37
强大,学习了
#38
学习
#39
D
#40
学习
#41
学习啦
#42
分享
#43
学习,收藏
#44
..
#45
up
#46
jidajidajid基督教埃及嗲就嗲时间段
#47
#48
学习
#49
还没遇到过场景。。。先收下。
#50
大学的时候,SQL老师提过,但是没有具体讲