SQL Server 2005 加密(安全性:非对称密钥、证书、对称密钥)
2013-11-06 14:38
344 查看
SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数。
EncryptByCert() 和 DecryptByCert() —利用证书对数据进行加密和解密
EncryptByAsymKey() 和 DecryptByAsymKey() —利用非对称密钥对数据进行加密和解密
EncryptByKey() 和 DecryptByKey() —利用对称密钥对数据进行加密和解密
EncryptByPassphrase() 和 DecryptByPassphrase() —利用密码字段产生对称密钥对数据进行加密和解密
通常来说,加密可以分为两大类,对称(Symmetric)加密和非对称(Asymmetric)加密。
创建密钥:
举个例子:
EncryptByCert() 和 DecryptByCert() —利用证书对数据进行加密和解密
EncryptByAsymKey() 和 DecryptByAsymKey() —利用非对称密钥对数据进行加密和解密
EncryptByKey() 和 DecryptByKey() —利用对称密钥对数据进行加密和解密
EncryptByPassphrase() 和 DecryptByPassphrase() —利用密码字段产生对称密钥对数据进行加密和解密
通常来说,加密可以分为两大类,对称(Symmetric)加密和非对称(Asymmetric)加密。
创建密钥:
/*数据库主密钥;这是一个数据库级别的密钥。可以用于为创建数据库级别的证书或非对称密钥提供加密。每一个数据库只能有一个数据库主密钥*/ CREATE MASTER KEY ENCRYPTION BY PASSWORD ='password' GO CREATE CERTIFICATE CertTest with SUBJECT = 'Test Certificate' GO --创建非对称密钥 CREATE ASYMMETRIC KEY TestAsymmetric WITH ALGORITHM = RSA_2048 ENCRYPTION BY PASSWORD = 'password'; GO --创建对称密钥 CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'password'; GO
举个例子:
--由证书加密对称密钥 CREATE SYMMETRIC KEY SymmetricByCert WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE CertTest; --测试数据 CREATE TABLE t_A (ID int,name VARCHAR(200),pwd VARCHAR(200)) INSERT INTO t_A SELECT 1,'aa','asd123' UNION ALL SELECT 2,'bb','123wer' UNION ALL SELECT 3,'cc','ryrty' UNION ALL SELECT 4,'dd','sdfsd' CREATE TABLE t_B (ID int,name VARCHAR(200), --pwd VARCHAR(200) pwd varbinary(200)--必须是varbinary类型才可以的,因为加密后是2进制的数据(感谢1楼回复) ) --打开之前创建的由证书加密的对称密钥 OPEN SYMMETRIC KEY SymmetricByCert DECRYPTION BY CERTIFICATE CertTest --利用这个密钥加密数据并插入新建的表 insert t_B( ID, name, pwd ) select ID, name, pwd =EncryptByKey(KEY_GUID('SymmetricByCert'), pwd) from t_A select * from t_B OPEN SYMMETRIC KEY SymmetricByCert DECRYPTION BY CERTIFICATE CertTest select ID, name, pwd = convert(varchar(200), DecryptByKey(pwd)) from t_B drop table t_A drop table t_B
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- 用ASP编写的加密和解密类
- 解密网页加密的两个方法
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- asp Chr 函数 数字转字母的方法
- BAT加密工具 EncryBat 非编译型bat批处理加密方案与代码
- SQLServer 2008中的代码安全(一) 存储过程加密与安全上下文
- 探索PowerShell(十一)函数介绍
- vbscript LoadPicture函数使用方法与漏洞利用
- vbs 中调用shell.application 简单函数
- Asp函数介紹(37个常用函数)第1/2页
- asp MD5加密方式使用建议
- C#对称加密与非对称加密实例
- phplib中的一些基本语法和函数
- 网络安全系列之四十七 在IIS6中申请并安装证书