Rumah > Artikel > pangkalan data > Mengapakah AES_DECRYPT Mengembalikan Data Disulitkan dalam 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!