数据库加密参考

–写一个这样的函数就行了.

/*–加/解密字符串
@str 为加/解密的字符串
@pwdstr 为加/解密字符串的密钥
*/
if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[f_jmstr]’) and xtype in (N’FN’, N’IF’, N’TF’))
drop function [dbo].[f_jmstr]
GO

create function f_jmstr(@str varchar(8000),@pwdstr varchar(8000))
returns varchar(8000)
As
begin
declare @re varchar(8000)
declare @i int

select @i=len(@str),@re=’’
while len(@pwdstr)<@i
set @pwdstr=@pwdstr+‘123’+@pwdstr

while @i>0
select @re=
nchar(unicode(substring(@str,@i,1))^unicode(substring(@pwdstr,@i,1)))
+@re
,@i=@i-1

return(@re)
end

go

–调用例子
select dbo.f_jmstr(dbo.f_jmstr(‘中国’,‘中’),‘中’)

查询分析器连接你的数据库,然后复制上面的代码到查询分析器中,按F5执行.

这样就建好函数了.

以后使用时,如果是存储数据到表中,就用:

insert 表(要加密的字段名) select dbo.f_jmstr(‘要存储的数据’,‘加密的key(解密时需要提供这个)’)

–读取数据的时候,就用:
select dbo.f_jmstr(字段名,‘加密的key(必须与加密的一样)’) from 表
–使用它来存储和读取数据的示例

–测试的表
declare @表 table(name varchar(10),pwd varchar(10))

–插入数据
insert @表 select ‘张三’,dbo.f_jmstr(‘123’,‘keystr’)
union all select ‘李四’,dbo.f_jmstr(‘345’,‘keystr’)

–查看表中的内容
select *
,解密后的内容=dbo.f_jmstr(pwd,‘keystr’)
,key错误的情况=dbo.f_jmstr(pwd,‘abc’)
from @表

/*–测试结果
name pwd 解密后的内容 key错误的情况


张三 ZWJ 123 ;5)
李四 XQL 345 93/

(所影响的行数为 2 行)
–*/

转载于:https://bbs.csdn.net/topics/50273149

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值