Penyulitan dan penyahsulitan berikut berfungsi seperti biasa dalam mod mysql (aes-256-cbc)
SET block_encryption_mode = 'aes-256-cbc'; select cast( aes_decrypt( from_base64('StThdNXA+CWvlg+of/heJQ=='), sha2(concat('ssshhhhhhhhhhh!!','ENCRYPTION_KEY$&'),256), 'ssshhhhhhhhhhh!!' ) as char); select to_base64(aes_encrypt( 'test_value', sha2(concat('ssshhhhhhhhhhh!!','ENCRYPTION_KEY$&'),256), 'ssshhhhhhhhhhh!!' ));
Saya cuba menyahsulit nilai yang disulitkan dalam mysql tanpa berjaya.
Berikut ialah kunci dalam pertanyaan mysql saya sha256 (garam+kunci)
select sha2(concat('ssshhhhhhhhhhh!!','ENCRYPTION_KEY$&'),256);
Nilai yang sama seperti yang saya dapat di java:
Hashing.sha256().hashString("ssshhhhhhhhhhh!!ENCRYPTION_KEY$&", StandardCharsets.UTF_8).toString();
Adakah terdapat cara tersuai untuk menjadikan istana melenting/API lain menggunakan kunci yang sama untuk penyahsulitan?
MySQL menggunakan algoritma OpenSSL secara dalaman, menggunakan EVP_BytesToKey sebagai fungsi terbitan. Lihat laman web ini
Contoh penyulitan dan penyahsulitan MySQL:
Terdapat JAR yang menyokong fungsi terbitan kunci EVP_BytesToKey ini.
}
Kesalingoperasian cara ini akhirnya tercapai! Harap ini membantu seseorang yang cuba melakukan perkara yang sama.