[交流貼]教你怎樣實現SQL密文加密,不可反編譯

中国风
博客专家认证
2010-01-05 10:40:14
加精
分享一下方法
用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
...全文
3400 143 打赏 收藏 转发到动态 举报
写回复
用AI写文章
143 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangBB 2010-05-25
  • 打赏
  • 举报
回复
ding yige ..
seraph99 2010-03-13
  • 打赏
  • 举报
回复
学习了。
limitstar 2010-01-20
  • 打赏
  • 举报
回复
好贴,学习中
迅帮 2010-01-13
  • 打赏
  • 举报
回复
学习 学习 学习 学习
中国风 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 107 楼 sotom 的回复:]
不错,  菜菜的问下, 那个加密后的字符能够在数据库存储不?
[/Quote]
可以,字段的存儲類型用Unicode
zl194 2010-01-13
  • 打赏
  • 举报
回复
yukwang 2010-01-11
  • 打赏
  • 举报
回复
赞一个,学习了。
shuanglo524 2010-01-11
  • 打赏
  • 举报
回复
学习了!~
jackeyabc 2010-01-10
  • 打赏
  • 举报
回复
学习
hj26511314 2010-01-10
  • 打赏
  • 举报
回复
学习
  • 打赏
  • 举报
回复
好棒的,我先收藏起来慢慢的研究
jishengzu 2010-01-10
  • 打赏
  • 举报
回复
Akai007 2010-01-10
  • 打赏
  • 举报
回复
还不错
「已注销」 2010-01-10
  • 打赏
  • 举报
回复
DDDDDDDDDDDDDDDDDDDDDDDD
ws54ttl 2010-01-10
  • 打赏
  • 举报
回复
收藏掉 哼哼~!
alex12qwer 2010-01-09
  • 打赏
  • 举报
回复
学习
lzp765 2010-01-09
  • 打赏
  • 举报
回复
jf
samyou 2010-01-09
  • 打赏
  • 举报
回复
学习了。
lao_bulls 2010-01-09
  • 打赏
  • 举报
回复
mark.
wzy_love_sly 2010-01-09
  • 打赏
  • 举报
回复
强大
加载更多回复(123)

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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