#php #mysql #encryption
#php #mysql #шифрование
Вопрос:
Я пытаюсь расшифровать данные, зашифрованные в PHP, используя AES-128-CTR в MySQL workbench, и мне не повезло. Все, что я получаю, равно null.
Любая помощь будет, как всегда, с благодарностью.
Попытка верстака: я попытался @@SESSION.block_encryption_mode = 'aes-128-ctr'
, но получил сообщение об ошибке, что не удалось установить значение ‘aes-128-ctr’.
SELECT desired_column, cast(AES_DECRYPT(desired_column, '1111111111111111') as CHAR) as result from table;
Код шифрования из php.
public function encryption($string){
// Store the cipher method
$ciphering = "AES-128-CTR";
// Use OpenSSl Encryption method
$iv_length = openssl_cipher_iv_length($ciphering);
$options = 0;
// Non-NULL Initialization Vector for encryption
$encryption_iv = '1111111111111111';
// Store the encryption key
$encryption_key = "somesecretkey";
// Use openssl_encrypt() function to encrypt the data
return openssl_encrypt($string, $ciphering, $encryption_key, $options, $encryption_iv);
}
Комментарии:
1. шифрование не везде одинаково, другие реализации препятствуют расшифровке, поэтому декодируйте только в той же среде, что и шифрование
2. Согласно dev.mysql.com/doc/refman/8.0/en/encryption-functions.html к сожалению , в mysql нет режима CTR, доступного.
3. @MichaelFehr Я нахожусь на стадии, когда о выборе другого шифрования не может быть и речи. Это еще не запущено. Есть идеи, что может быть совместимо между MySQL и php / OpenSSL?
4. PHP / openssl и MySQL поддерживают режим CBC
5. @MichaelFehr Тогда я рассмотрю AES-256-CBC. Спасибо!