存储 ENCRYPTBYPASSPHRASE() 的值

Storing the value of ENCRYPTBYPASSPHRASE()

我在 SQL Server Management Studio 2017 中使用以下查询。

SELECT ENCRYPTBYPASSPHRASE('xxyy','test@123')

当我运行上面的语句时,它return输入了一个像0x01000000EA686E7D1AED8C501B193A2F655368FC3EABA009082C90F58987DD0487833C62

这样的加密密码

我想使用存储过程将其存储在 table 中,其中包含一个 NVARCHAR(MAX) 字段,但插入时使用的是空白值而不是加密密码。

我在 SP 中使用 print 语句获取此函数发出的值。它 return 编辑了一些不可读的字符,如下所示。

됏㬷病譽快

如何正确使用 ENCRYPTBYPASSPHRASE() 以便将 return 值插入 table 字段。

你可以试试下面的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