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

CREATEMASTERKEYENCRYPTIONBYPASSWORD='123456'CREATECERTIFICATEmaster_server_certWITHSU... CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456'
CREATE CERTIFICATE master_server_cert WITH SUBJECT='Library'
我的数据库名字是 Library
这两句是我自己写的
接下来
insert into 读者bak(借书证号,身份证号) values('210','123456789123456789')
插入这条记录后,要求对身份证号加密
然后select显示加密后的身份证号
还要解密
展开
 我来答
鲜美还清湛灬白桦N
推荐于2017-12-16 · TA获得超过620个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:521万
展开全部
--以下代码包括创建密钥,加密,解密和删除密钥
/*
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')))
品质111
2015-04-27 · TA获得超过1万个赞
知道大有可为答主
回答量:1.1万
采纳率:85%
帮助的人:1963万
展开全部
我建议您可以下载超级加密3000试试。

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

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

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

超级加密3000是一款不可多得的文件加密软件,您可以到百度上搜索超级加密3000给您的文件加密试试看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式