Rumah >pangkalan data >tutorial mysql >Mengapakah AES_DECRYPT Mengembalikan Data Disulitkan dalam MySQL?

Mengapakah AES_DECRYPT Mengembalikan Data Disulitkan dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-10 13:46:03683semak imbas

Why is AES_DECRYPT Returning Encrypted Data in MySQL?

Tidak Dapat Menyahsulit Data Disulitkan Selepas AES_ENCRYPT dalam MySQL

Pernyataan Masalah:

Selepas penyulitan data menggunakan AES_ENCRYPT dalam jadual MySQL, percubaan untuk menyahsulit data menggunakan AES_DECRYPT mengakibatkan ketidakupayaan untuk melihat nilai yang disulitkan.

Penyelesaian:

Seperti dalam Manual MySQL, AES_DECRYPT bertujuan untuk mengembalikan rentetan asal selepas penyahsulitan. Walau bagaimanapun, pengguna memerhatikan bahawa nilai yang disulitkan masih dikembalikan sebagai rentetan binari. Untuk menyelesaikan isu ini, pengguna harus cuba menghantar rentetan yang dinyahsulit sebagai rentetan aksara menggunakan fungsi CAST.

Sebagai contoh, pertanyaan berikut akan menghantar lajur nama_pertama yang dinyahsulit sebagai rentetan 50 aksara:

SELECT *, 
       CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt 
FROM   user

Pengguna kemudian boleh menggunakan lajur first_name_decrypt untuk melihat data yang dinyahsulit dalam format yang boleh dibaca.

Atas ialah kandungan terperinci Mengapakah AES_DECRYPT Mengembalikan Data Disulitkan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn