我正在SQL Server Management Studio 2017中使用以下查询。
SELECT ENCRYPTBYPASSPHRASE('xxyy','test@123')
运行上面的语句时,它返回了一个加密的密码,例如0x01000000EA686E7D1AED8C501B193A2F655368FC3EABA009082C90F58987DD0487833C62
我想使用存储过程将其存储在包含NVARCHAR(MAX)
字段的表中,但是插入时会出现空白值而不是加密密码。
我使用了print
语句来获取SP中此函数发出的值。它返回了一些不可读的字符,如下所示。
如何正确使用ENCRYPTBYPASSPHRASE()
以便将返回值插入表字段中。
答案 0 :(得分:0)
您可以尝试以下Sql语句
CREATE TABLE #TempPassword (encPassword varbinary(250))
declare @encPwd varbinary(250)
set @encPwd = (SELECT ENCRYPTBYPASSPHRASE('xxyy','test@123'))
insert into #TempPassword values (@encPwd)
select * from #TempPassword
现在插入后的输出如下所示
encPassword
0x0100000023C4E9BFBC0F4319735ED2F0C76C2D857C114D96867711F1EE290AB2E7511961