Rumah >pangkalan data >tutorial mysql >Mengapakah AES_DECRYPT() Mengembalikan Keputusan Kosong dalam MySQL?
Menyelesaikan masalah Kegagalan AES_DECRYPT dalam MySQL
Apabila cuba menyahsulit data yang disulitkan sebelum ini dengan AES_ENCRYPT(), anda mungkin menghadapi masalah di mana AES_DECRYPT() mengembalikan hasil kosong. Ini boleh mengecewakan, kerana data anda yang disulitkan masih tidak boleh diakses.
Menurut dokumentasi MySQL, AES_DECRYPT() dijangka akan mengembalikan rentetan asal yang menyahsulit rentetan yang disulitkan. Walau bagaimanapun, dalam beberapa kes, ia mungkin mengembalikan rentetan perduaan sebaliknya.
Untuk menyelesaikan isu ini, cuba yang berikut:
SELECT *, CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt FROM user
Pertanyaan ini menggunakan fungsi CAST() untuk menukar yang dinyahsulit rentetan binari kepada rentetan CHAR, yang boleh dipaparkan dengan betul. Daripada menggunakan "first_name" dalam pertanyaan atau aplikasi anda yang berikutnya, gunakan "first_name_decrypt" untuk mengakses data yang dinyahsulit.
Atas ialah kandungan terperinci Mengapakah AES_DECRYPT() Mengembalikan Keputusan Kosong dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!