Symmetric Key DecryptByKey返回带有'0x'前缀的明文

时间:2015-08-04 22:08:59

标签: sql-server encryption-symmetric

我通过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中运行插入,我可以成功解密它。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

从上一步发送的列的数据类型最初是" DT_STR"。将其更改为" DT_TEXT"解决了这个问题。