Сохранение значения ENCRYPTBYPASSPHRASE () - PullRequest
0 голосов
/ 17 декабря 2018

Я использую приведенный ниже запрос в SQL Server Management Studio 2017.

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

Когда я запускаю приведенную выше инструкцию, она возвращает зашифрованный пароль, такой как 0x01000000EA686E7D1AED8C501B193A2F655368FC3EABA009082C90F58987DD0487833C62

, который я хотелсохраните это в таблице, которая содержит поле NVARCHAR(MAX) с использованием хранимой процедуры, но вставка происходит с пустым значением вместо зашифрованного пароля.

Я использовал оператор print для получения значения, испускаемого этимфункция с в SP.Он вернул некоторые нечитаемые символы, как показано ниже.

됏㬷病譽快 image

Как правильно использовать ENCRYPTBYPASSPHRASE() для вставки возвращаемого значения в поле таблицы.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете попробовать следующий оператор 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
...