SQL: расшифровка зашифрованного значения не дает читабельные данные - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть таблица SQL, которая подчиняется SQL шифрованию на уровне столбца с использованием AES_256 ENCRYPTION. Я столкнулся с проблемой при обновлении зашифрованного поля в этой таблице.

В качестве примера, используя эту базу данных SQL, я пытался зашифровать и расшифровать одно строковое значение, как показано ниже

OPEN SYMMETRIC KEY MyKey
DECRYPTION BY CERTIFICATE MyCertificate WITH PASSWORD = 'MyPassword';
select 'sample'
CLOSE SYMMETRIC KEY MyKey;
// which is giving Sample as it is direct

OPEN SYMMETRIC KEY MyKey
DECRYPTION BY CERTIFICATE MyCertificate WITH PASSWORD = 'MyPassword';
select ENCRYPTBYKEY(KEY_GUID(N'MyKey'), 'sample')
CLOSE SYMMETRIC KEY MyKey;
//which is giving something like this '0x00D94CE0BEE5C5479888D26B4852A8A201000000CA822C36595A3AA542348EE68E50FC8106B4659E8E1EEDF515784EB124792044'

OPEN SYMMETRIC KEY MyKey
DECRYPTION BY CERTIFICATE MyCertificate WITH PASSWORD = 'MyPassword';
select CAST(DECRYPTBYKEY(ENCRYPTBYKEY(KEY_GUID(N'MyKey'), 'sample'))  as nvarchar(200)) 
CLOSE SYMMETRIC KEY MyKey;
//This should be giving me the text 'sample' back, but it did not and giving me some unreadable data '慳灭敬'

Я не мог найти, где это идет не так. Любое предложение будет полезно

...