Sql server 加密后正确解密密码

Sql server 加密后正确解密密码,sql-server,encryption,Sql Server,Encryption,我正在尝试在SQL Server 2012中加密然后解密文本。我期待着第三次打印会给我返回customer\u 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

我正在尝试在SQL Server 2012中加密然后解密文本。我期待着第三次打印会给我返回
customer\u 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 )
结果:

顾客服务
0x01000000398F9A0D3FE98D29E8F56D6B1908EA87C08706786319DD1BB3F150FFC5B7F3C
0x637573746F6D65725F616263


您的代码很好,只是必须显式转换以获得实际的varchar值。
Decrypt
函数的输出仍然是二进制的。将最后一行更改为:

PRINT CONVERT(VARCHAR(25),DecryptByPassPhrase('secret', @var_password));
另外,我强烈建议您支持Unicode(因此
NVARCHAR
而不是
VARCHAR
)。除非你想让自己看起来不重视用户的密码安全