使用 EncryptByPassPhrase 创建它们后,DECRYPTBYPASSPHRASE 不起作用
DECRYPTBYPASSPHRASE is not working after creating them with EncryptByPassPhrase
我有一个 table:
CREATE TABLE TempHashedValues(
HashedValues varbinary(200)
)
现在,我正在向它插入加密值,以便以后使用:
Insert into TempHashedValues values ( EncryptByPassPhrase('key', 'SecretEncoded' ))
现在,当我尝试使用相同的密钥解密它们时:
Select TOP 1 DECRYPTBYPASSPHRASE('key',HashedValues) from TempHashedValues
我只是取回二进制值,而不是我加密的值!!
我错过了什么?
如此处所述http://sqlity.net/en/2530/decryptbypassphrase/
ENCRYPTBYPASSPHRASE
returns 作为 VARBINARY(8000)
数据类型的加密值。该数据类型(例如 SQL_VARIANT 除外)不包含有关原始数据类型的任何信息。因此,DECRYPTBYPASSPHRASE
也是returns一个VARBINARY(8000)
的值。
你必须施放它:
Select TOP 1 (CAST(DECRYPTBYPASSPHRASE('key',HashedValues) AS VARCHAR(8000))) from TempHashedValues
我有一个 table:
CREATE TABLE TempHashedValues(
HashedValues varbinary(200)
)
现在,我正在向它插入加密值,以便以后使用:
Insert into TempHashedValues values ( EncryptByPassPhrase('key', 'SecretEncoded' ))
现在,当我尝试使用相同的密钥解密它们时:
Select TOP 1 DECRYPTBYPASSPHRASE('key',HashedValues) from TempHashedValues
我只是取回二进制值,而不是我加密的值!!
我错过了什么?
如此处所述http://sqlity.net/en/2530/decryptbypassphrase/
ENCRYPTBYPASSPHRASE
returns 作为 VARBINARY(8000)
数据类型的加密值。该数据类型(例如 SQL_VARIANT 除外)不包含有关原始数据类型的任何信息。因此,DECRYPTBYPASSPHRASE
也是returns一个VARBINARY(8000)
的值。
你必须施放它:
Select TOP 1 (CAST(DECRYPTBYPASSPHRASE('key',HashedValues) AS VARCHAR(8000))) from TempHashedValues