请问SQL怎么对数据进行加密

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456'
CREATE CERTIFICATE master_server_cert WITH SUBJECT='Library'
我的数据库名字是 Library
这两句是我自己写的
接下来
insert into 读者bak(借书证号,身份证号) values('210','123456789123456789')
插入这条记录后,要求对身份证号加密
然后select显示加密后的身份证号
还要解密

--以下代码包括创建密钥,加密,解密和删除密钥
/*
1.利用对称密钥 
搭配EncryptByKey进行数据加密
使用DecryptByKey函数进行解密
这种方式比较适合大数据量
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE CERTIFICATE TOMCERT WITH SUBJECT = 'ZXC CERTIFICATE', EXPIRY_DATE = '2015/01/01'
CREATE SYMMETRIC KEY SYM_TOM WITH ALGORITHM = DESX ENCRYPTION BY CERTIFICATE TOMCERT
OPEN SYMMETRIC KEY SYM_TOM DECRYPTION BY CERTIFICATE TOMCERT
SELECT CONVERT(NVARCHAR(10), Decryptbykey(( Encryptbykey(Key_guid('SYM_TOM'), N'TOM3') )))
CLOSE SYMMETRIC KEY SYM_TOM
DROP SYMMETRIC KEY SYM_TOM
DROP CERTIFICATE TOMCERT;
DROP MASTER KEY;
--或--
CREATE SYMMETRIC KEY ZXC WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'ZXC123456'
OPEN SYMMETRIC KEY ZXC DECRYPTION BY PASSWORD = 'ZXC123456'
SELECT CONVERT(VARCHAR(10), Decryptbykey(Encryptbykey(Key_guid('ZXC'), 'YHDH_C')))
CLOSE SYMMETRIC KEY ZXC;
DROP SYMMETRIC KEY ZXC;
/*
2.利用非对称密钥
搭配EncryptByAsymKey进行数据加密
使用DecryptByAsymKey函数进行解密
用于更高安全级别的加解密数据
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE ASYMMETRIC KEY ABC WITH ALGORITHM=RSA_2048 ENCRYPTION BY PASSWORD = 'ZXC123456'
ALTER ASYMMETRIC KEY ABC WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'ZXC123456')
SELECT CONVERT(VARCHAR(100), Decryptbyasymkey (Asymkey_id('ABC'), Encryptbyasymkey(Asymkey_id ('ABC'), 'ZXC123456')))
DROP ASYMMETRIC KEY ABC;
DROP MASTER KEY
/*
3.利用凭证的方式
搭配EncryptByCert进行加密
DecryptByCert函数进行解密
比较类似非对称密钥
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE CERTIFICATE ZXC WITH SUBJECT = 'ZXC CERTIFICATE', EXPIRY_DATE = '2015/01/01'
SELECT CONVERT(VARCHAR(20), Decryptbycert(Cert_id('ZXC'), Encryptbycert(Cert_id('ZXC'), '123456')))
DROP CERTIFICATE ZXC;
DROP MASTER KEY
--或--
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5', 
    SECRET = '123456'; 
ALTER LOGIN User1
ADD CREDENTIAL AlterEgo 
Drop CREDENTIAL AlterEgo 
DROP CREDENTIAL AlterEgo 
/*
4.利用密码短语方式
搭配EncryptBypassPhrase进行加密
使用DecryptByPassPhrase函数来解密
比较适合一般的数据加解密
*/
SELECT CONVERT(VARCHAR(100), Decryptbypassphrase('xiaoma', Encryptbypassphrase('xiaoma', '123456')))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-27
我建议您可以下载超级加密3000试试。

超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。

超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。

超级加密3000还支持加密文件的临时解密,文件加密后,双击加密文件,在弹出密码输入对话框输入正确的密码选择确定,该加密文件就处于临时解密,文件使用完毕退出以后,它自动恢复到加密状态,无需再加密。

超级加密3000是一款不可多得的文件加密软件,您可以到百度上搜索超级加密3000给您的文件加密试试看。
相似回答