隔墙有耳之数据在存储的时候对数据加密-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

隔墙有耳之数据在存储的时候对数据加密

简介:
               隔墙有耳之数据在存储的时候对数据加密
下面来介绍一下,数据在存储的时候对数据加密。
我们先来采用证书来对数据加密,命令如下:
declare @a varchar(100),@b varbinary(max)
set @a='yonglei hao!!'加密内容
set @b=encryptbycert (cert_id ('cer2'),@a)
然后输入
select cast(decryptbyasymkey (cert_id('asy2'),@b,N'Ccjsj1200') as varchar(100))
可以把我们解密的内容以明文方式显示出来
在上面我们为什么要用varbinary(max)呢?
因为在加密以后我们不知道它是具有多少位的字符串,所以我们要用最大值的。
clip_image002
在上篇博文中没有介绍关于非对称的一些东西,现在就来看一下非对称密钥的介绍
create asymmetric key asy1 with algorithm=RSA_2048
创建非对称密钥
create asymmetric key asy2 with algorithm=RSA_2048 Encryption by password='Ccjsj1200'
select * from sys.asymmetric_keys
采用口令创建非对称密钥
alter asymmetric key asy2 with private key (decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')
修改密钥的口令,这种方法是不能采用备份的,下面采用另外一种方法创建。
用sn.exe –k这个命令如图:
clip_image004
clip_image006
密钥写入完成后,利用这个密钥来生成非对称密钥。
create asymmetric key asy3 from file='c:\bak\lyl.key' encryption by password='Ccjsj1200'
利用密钥来生成非对称密钥
clip_image008
例子:对yongleihao!!就行加密,显示加密后的数据并解密。
declare @a varchar(100),@b varbinary(max)
set @a='yongleihao!!'
set @b=encryptbyasymkey (asymkey_id('asy2'),@a)
select @b
select cast(decryptbyasymkey (asymkey_id('asy2'),@b,N'Ccjsj1200') as varchar(100))
如图:
clip_image010
clip_image012
数据库的安全性就介绍到这了,完了。









本文转自 liuyonglei 51CTO博客,原文链接:http://blog.51cto.com/liuyonglei/171016,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章