微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer中数据加密方法

sqlServer中的数据进行加密,有三种方法

1、  在程序语言中先对数据进行加密后再把加密后的数据保存在sqlServer数据库中;

2、  利用sqlServer未公开的加密密码函数,在sql代码调用加密密码函数对数据进行加密后保存;

3、  编写扩展存储过程的外部DLL文件实现加密,然后由sql代码调用加密功能实现数据加密。

 

第一种方法就不再描述,利用第二种方法加密数据代码示例:

create table #temptable(iorder int, pswd varbinary(1024) )

go

insert into #temptable values(1, pwdencrypt('yang'))

insert into #temptable values(2, pwdencrypt('lian'))

insert into #temptable values(3, pwdencrypt('shan'))

select * from #temptable

-- 比较数据是否相等

where pwdcompare('lian', pswd)=1

drop table #temptable

go

上面的语句中,用到了二个函数pwdencryptpwdcompare,这是二个sqlServer未公开的函数pwdencrypt实现对输入数据进行加密后返回二进制形式的加密内容,而pwdcompare用于检查明文是否与加密的二进制数据内容相等,没有解密函数。这二个函数主要是用于sqlServer内部自己调用。优点是调用方便,缺点是这二个函数没有公开,就意味着可能改变,并且不兼容原来的,在使用上存在风险。

第三种方法,在我的上一篇文章《在sqlServer调用外部扩展存储过程》里,已描述了怎样编写扩展存储过程DLL文件和怎样注册扩展存储过程,我提供了一个完整的加密DLL文件,可注册sqlServer调用,也可注册COM库,还可在语言中直接调用声明的函数,由于在文章中没有上传文件功能,因此,我先把此DLL文件上传到“我的资源”中,有兴趣者可下载。

 

说明:本文不讨论哪种方法好和坏,在于列举出后二种方法,供大家参考,只有实用的才是最好的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐