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

开发者社区> 余二五> 正文

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

简介:
+关注继续查看
               隔墙有耳之数据在存储的时候对数据加密
下面来介绍一下,数据在存储的时候对数据加密。
我们先来采用证书来对数据加密,命令如下:
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,如需转载请自行联系原作者

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

相关文章
SQLServer · 最佳实践 · 透明数据加密在SQLServer的应用
背景 作为云计算的服务提供者,我们在向用户提供优秀的服务能力时会遇到一个合规的问题。在数据库领域,数据是极其敏感和珍贵的,保护好数据,就如保护好企业的生命线。因此,需要采取一些预防措施来帮助保护数据库的安全,如设计一个安全系统、加密机密资产以及在数据库服务器的周围构建防火墙。但是,如果遇到物理介质
1958 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4503 0
Spring Security笔记:使用BCrypt算法加密存储登录密码
在前一节使用数据库进行用户认证(form login using database)里,我们学习了如何把“登录帐号、密码”存储在db中,但是密码都是明文存储的,显然不太讲究。这一节将学习如何使用spring security3新加入的bcrypt算法,将登录加密存储到db中,并正常通过验证。
1543 0
SqlServer2008 新功能:简单数据加密
原文:SqlServer2008 新功能:简单数据加密 一、首先要把密码字段改成 varbinary 类型。 CREATE TABLE [dbo].[UserInfo]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](50) N...
508 0
如何迁移RDS中的加密存储过程
1. 背景介绍 目前,迁移RDS SQL Server中的数据到其他RDS SQL Server时,使用DTS数据传输服务进行迁,无法将加密存储过程顺利迁出。加密的存储过程,无法script出其定义。 备注:当您考虑加密数据库存储过程之前,建议先做一个备份。2. 查看SQL Server中加密存储过程和函数的方法 1)在存储过程所在的数据库下,创建存储过程sp_decrypt (出自微软BI
2325 0
+关注
12906
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载