我需要对数据库中的某些个人信息进行加密/解密,例如信用卡号和密码。
按照Microsoft的步骤,我成功地加密和解密了数据。
但是经过一些测试,我有疑问。
假设有人未经授权访问数据库(黑客),并且可以从自己的计算机上以SSMS形式查看数据库。很好,他可以看到我有一些证书和对称密钥设置。
为了显示数据,示例显示以下查询
OPEN symmetric KEY symmetrickey1
decryption BY certificate certificate1
Now list the original ID, the encrypted ID
SELECT customer_id,
credit_card_number_encrypt AS
'Encrypted Credit Card Number',
CONVERT(VARCHAR, Decryptbykey(credit_card_number_encrypt)) AS
'Decrypted Credit Card Number'
FROM dbo.customer_data;
-- Close the symmetric key
CLOSE symmetric KEY symmetrickey1;
如果以上查询返回了数据并且可以看到信用卡,那么该如何保护?不需要在查询中的某个地方传递密码吗?
我敢肯定我想念这里的东西。谁能向我解释一下?
我必须在证书中输入密码
CREATE CERTIFICATE Certificate1
Encryption By Password='Password123'
WITH SUBJECT = 'Protect Data'
用于检索数据
OPEN Symmetric KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1 With Password='Password123'
;
select *,CONVERT(nvarchar(255),DECRYPTBYKEY(Credit_Card_No)) as
[Credit_Card_No3] from Customers
;
Close Symmetric Key SymmetricKey1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句