我想DecryptByKey这个和它返回null。
--CREATE MASTER KEY ENCRYPTION
--BY PASSWORD = 'Password1'
--CREATE CERTIFICATE MyCert
--WITH SUBJECT = 'MyCert'
--CREATE SYMMETRIC KEY MyKey
--WITH ALGORITHM = TRIPLE_DES ENCRYPTION
--BY CERTIFICATE MyKey
OPEN SYMMETRIC KEY MyKey DECRYPTION
BY CERTIFICATE MyCert;
INSERT INTO sometable (ENCRYPTBYKEY(KEY_GUID('MyKey'),'12345'));
CLOSE SYMMETRIC KEY MyKey;
OPEN SYMMETRIC KEY MyKey DECRYPTION
BY CERTIFICATE MyCert;
SELECT
CONVERT(VARCHAR(50), DECRYPTBYKEY(some_column))
FROM sometable;
CLOSE SYMMETRIC KEY MyKey;
列定义为varbinary(256)。
其结果是空。如何改变这种以获得解密的值,而不是空?或者有什么是一些可能的陷阱或事物的检查?
问题是在表中的列不够大,无法存储数据。因此,它被截断没有错误。
我增加了柱尺寸和问题就解决了。
随着我的样本sometable
此脚本效果很好。所以,请注明您的表定义。
然后,我想你应该测试是否KEY_GUID( '的myKey')IS NOT NULL ..