Преобразовать строковое представление VARBINARY в значение VARBINARY - PullRequest
0 голосов
/ 16 января 2019

Мне нужно взять строковое представление значения VARBINARY и преобразовать его обратно в фактическое значение VARBINARY, но как?

Я хочу взять результаты следующего запроса и преобразовать его обратно в значение VARBINARY, чтобы я мог расшифровать его до его первоначального значения?

CREATE TABLE Table1 (
    FirstName varchar(32) NOT NULL,
    LastName varchar(32) NOT NULL,
    Social varbinary(128) NOT NULL)

OPEN SYMMETRIC KEY KEY_NAME
DECRYPTION BY CERTIFICATE CERT

INSERT INTO Table1(FirstName,LastName,Social)
VALUES ('John','Doe',ENCRYPTBYKEY(Key_Guid('KEY_NAME'),'123-45-6789'))

SELECT CONVERT(varchar(max), social,1) Social
FROM Table1
WHERE LastName='Doe'

1 Ответ

0 голосов
/ 16 января 2019

Итак, в общем, вы будете использовать convert для перехода к varbinary и varchar. Вы захотите использовать 2 для стиля вместо 1, чтобы получить строковое представление. Если вы хотите буквальное преобразование, используйте значение по умолчанию 0.

DB FIDDLE

declare @v varbinary(128) = (select cast('ThisIsMyPassword' as varbinary(128)))

select
    @v as Val
    ,convert(varchar(max),@v,2) as String
    ,convert(varchar(max),@v,0) as Literal

См. Документы о том, когда использовать стили, здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...