对称密钥 DecryptByKey 返回带有“0x”前缀的明文
Symmetric Key DecryptByKey returning clear text with '0x' prefix
我正在通过 SSIS OLEDB 命令像这样将数据插入 table
OPEN SYMMETRIC KEY crypto_key
DECRYPTION BY CERTIFICATE crypto_cert;
insert into tmp_ssis_auth_load_detail values(EncryptByKey(Key_GUID('crypto_key'), ?))
CLOSE SYMMETRIC KEY crypto_key
当我尝试使用以下查询(在 SQL Management Studio 中)解密数据时
OPEN SYMMETRIC KEY crypto_key
DECRYPTION BY CERTIFICATE crypto_cert;
select DecryptByKey(account_number) from tmp_ssis_auth_load_detail
CLOSE SYMMETRIC KEY crypto_key
我得到的结果是 0x4556808712810676,当我将它转换为 varchar 时,我得到了一些像 "EV€‡v" 这样的垃圾值。我给输入查询的原始值是“4556808712810676”,解密函数返回带有“0x”前缀的值。
如果我 运行 在 SQL Management Studio 中插入,我可以成功解密它。
我做错了什么?
从上一步发送的列的数据类型最初是 "DT_STR"。将其更改为 "DT_TEXT" 解决了问题。
我正在通过 SSIS OLEDB 命令像这样将数据插入 table
OPEN SYMMETRIC KEY crypto_key
DECRYPTION BY CERTIFICATE crypto_cert;
insert into tmp_ssis_auth_load_detail values(EncryptByKey(Key_GUID('crypto_key'), ?))
CLOSE SYMMETRIC KEY crypto_key
当我尝试使用以下查询(在 SQL Management Studio 中)解密数据时
OPEN SYMMETRIC KEY crypto_key
DECRYPTION BY CERTIFICATE crypto_cert;
select DecryptByKey(account_number) from tmp_ssis_auth_load_detail
CLOSE SYMMETRIC KEY crypto_key
我得到的结果是 0x4556808712810676,当我将它转换为 varchar 时,我得到了一些像 "EV€‡v" 这样的垃圾值。我给输入查询的原始值是“4556808712810676”,解密函数返回带有“0x”前缀的值。
如果我 运行 在 SQL Management Studio 中插入,我可以成功解密它。
我做错了什么?
从上一步发送的列的数据类型最初是 "DT_STR"。将其更改为 "DT_TEXT" 解决了问题。