У меня есть таблица 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 '慳灭敬'
Я не мог найти, где это идет не так. Любое предложение будет полезно