加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer中数据加密方法

发布时间:2020-12-12 13:16:34 所属栏目:MsSql教程 来源:网络整理
导读:对 SQLServer 中的数据进行加密,有三种方法, 1、 ?? 在程序语言中先对数据进行加密后再把加密后的数据保存在 SQLServer 数据库中; 2、 ?? 利用 SQLServer 未公开的加密密码函数,在 SQL 代码中调用加密密码函数对数据进行加密后保存; 3、 ?? 编写扩展存

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文件上传到“我的资源”中,有兴趣者可下载。

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读