我通过SSIS OLEDB命令将数据插入到这样的表中
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中运行插入,我可以成功解密它。
我在这里做错了什么?
答案 0 :(得分:0)
从上一步发送的列的数据类型最初是" DT_STR"。将其更改为" DT_TEXT"解决了这个问题。