Rumah >pangkalan data >tutorial mysql >Mengapakah AES_DECRYPT mengembalikan rentetan binari dan bukannya teks biasa dalam MySQL?

Mengapakah AES_DECRYPT mengembalikan rentetan binari dan bukannya teks biasa dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2024-11-11 03:50:02428semak imbas

Why does AES_DECRYPT return a binary string instead of plaintext in MySQL?

Penyulitan dan Penyahsulitan AES Menggunakan Fungsi MySQL

Apabila bekerja dengan data sensitif, penyulitan menjadi penting untuk melindungi maklumat daripada capaian yang tidak dibenarkan. MySQL menyediakan pelbagai fungsi penyulitan, termasuk AES_ENCRYPT dan AES_DECRYPT, untuk melindungi data. Walau bagaimanapun, sesetengah pengguna menghadapi kesukaran semasa mencuba penyahsulitan selepas penyulitan menggunakan fungsi ini.

Masalah:

Apabila menanyakan baris daripada jadual menggunakan AES_DECRYPT selepas menyulitkannya dengan AES_ENCRYPT, hasilnya mungkin muncul sebagai rentetan binari dan bukannya yang dijangkakan plaintext.

Penyelesaian:

Menurut dokumentasi MySQL, AES_DECRYPT harus mengembalikan rentetan asal selepas penyahsulitan. Walau bagaimanapun, mungkin terdapat situasi di mana ia masih mengembalikan rentetan perduaan.

Kod berikut menunjukkan penyelesaian untuk isu ini:

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

Dengan menghantar nilai yang dinyahsulit secara eksplisit kepada jenis aksara menggunakan CAST(), anda boleh memastikan bahawa ia dipaparkan sebagai rentetan yang boleh dibaca. Gunakan lajur first_name_decrypt dalam pertanyaan anda untuk mendapatkan semula teks biasa yang dinyahsulit dan bukannya lajur first_name yang asal.

Atas ialah kandungan terperinci Mengapakah AES_DECRYPT mengembalikan rentetan binari dan bukannya teks biasa 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