Давайте разбить его. Согласно документации, выход ENCRYPTBYPASSPHRASE()
является varbinary. У вас есть CONVERT
ing, что в varchar. В соответствии с документацией для конвертирования, если вы не предоставляете стиль, конвертируйте «Переводит символы ASCII в двоичные байты или двоичные байты в символы ASCII. Каждый символ или байт преобразуется 1: 1.». Если вы ищете что-то большее, например 0x123abc
, передайте дополнительный параметр (1) на CONVERT
, чтобы сделать это.
Все, что сказано, если вам не нужен человек, чтобы иметь возможность транскрибировать зашифрованный контент (или иначе интерпретировать его), я оставил бы его в своем varbinary представлении. Меньше места для ошибки на стороне расшифровки. В частности:
DECLARE @resul VARBINARY(8000);
SET @RESUL = ENCRYPTBYPASSPHRASE('Prueba','200000');
SELECT CAST(DECRYPTBYPASSPHRASE('Prueba', @resul) AS VARCHAR(50));
Да, это ожидается. В чем проблема? –
Мне нужно вставить этот пароль, зашифрованный в таблицу .. но когда я хочу его прочитать, ничего мне не даю (я думал, что ecncryptbypassphrase дал мне результат с «enter») ... поэтому я взял результат печати и попытался расшифровать с помощью DECRYPTBYPASSPHRASE, но функция возвращает мне «NULL». – Laura