我正在尝试在SQL Server 2012中加密然后解密文本。我期待第三张打印件能够让我回复customer_abc
:
DECLARE
@var_customer VARCHAR(25),
@var_password VARBINARY(8000)
SET @var_customer = 'customer_abc'
SET @var_password = EncryptByPassPhrase('secret', @var_customer )
print @var_customer
print @var_password
print DecryptByPassPhrase('secret', @var_password )
结果:
customer_abc
0x01000000398F9A0D3FE98D29E8F56D6B1908EA87C08706786319DD1BBB3F150FFC5B7F3C
0x637573746F6D65725F616263
答案 0 :(得分:0)
您的代码很好,除了您必须显式转换以获取实际的varchar值。 Decrypt
函数的输出仍为二进制。将最后一行更改为:
PRINT CONVERT(VARCHAR(25),DecryptByPassPhrase('secret', @var_password));
顺便说一句,我强烈建议您支持Unicode(所以NVARCHAR
代替VARCHAR
)。除非你想看起来像是不接受你的用户'密码安全认真。