Я пытаюсь использовать ENCRYPTBYPASSPHRASE / DECRYPTBYPASSPHRASE с путями к файлам на SQL Server MS 14. Я могу зашифровать указанный путь к файлу, но когда я пытаюсь расшифровать, я получаю значение NULL
Я уже поиграл с типами параметров без каких-либо изменений в результате. Я попытался привести / преобразовать зашифрованный результат в varbinary без успеха
select ENCRYPTBYPASSPHRASE('stackoverflow', 'C:\Users\brogeli\Documents\Personal\select-network-option.pdf', 1,
CONVERT(varbinary, '10'))
SELECT DECRYPTBYPASSPHRASE('stackoverflow',
'0x010000005A331BC5AE1C1A7E3BDD47249768C5F51029970883DEEEED65457C7DC87EC0A020241BE11C45145850C2AA79078CD97E0704728262F825C92DC8E58C7A586A3B7EE798E435167F7DDC500706032A3F88707D5A13D88AF0A7B6DA309261F41CB56CFDE42A0DE0AC7B'
, 1, CONVERT(varbinary,
'10'
));
Я ожидаю получить одинаковый путь к файлу со всеми символами, но фактический результат равен NULL
EDIT:
Я попробовал это, и это сработало
select cast(DECRYPTBYPASSPHRASE('stackoverflow',
0x01000000BD9C213B8C9B279BA9B91E152EB9E8B37F3E37F4E4C4FAD4E104C706642B87C40838E65CA4AF7DF8276F191F04AF691C9753DB6C304D0F5733CCCD76A803A2AA7DCD3D6E9B4BDD19BE7B403DA9940B49CED28D414CCA0640D772E413DEF21B51BA343BEA3F6A10AA,
1, CONVERT(varbinary, '10'))as varchar(8000));
однако, моя идея состоит в том, чтобы создать две хранимые процедуры для шифрования / дешифрования и передачи зашифрованного результата как varchar в процедуру дешифрования, поэтому я попытался привести / преобразовать в varbinary, но это не работает:
select cast(DECRYPTBYPASSPHRASE('stackoverflow',
cast('0x01000000BD9C213B8C9B279BA9B91E152EB9E8B37F3E37F4E4C4FAD4E104C706642B87C40838E65CA4AF7DF8276F191F04AF691C9753DB6C304D0F5733CCCD76A803A2AA7DCD3D6E9B4BDD19BE7B403DA9940B49CED28D414CCA0640D772E413DEF21B51BA343BEA3F6A10AA' as varbinary),
1, CONVERT(varbinary, '10'))as varchar(8000));
есть идеи, как этого добиться? Передайте varbinary как varchar и приведите / преобразуйте обратно в varbinary