PHP AES Encrypt/Decrypt
Walaupun pengekodan base64 dan mcrypt boleh digunakan untuk menyulitkan dan menyahsulit rentetan dalam PHP, terdapat isu yang berpotensi dengan pendekatan ini. Untuk penyulitan selamat, anda disyorkan untuk menggunakan pustaka penyulitan PHP yang sedia ada dan dipercayai.
Libsodium untuk Keselamatan Dipertingkat
Jika sambungan PECL boleh diterima, Libsodium menawarkan penyulitan yang lebih mantap penyelesaian. Ia menampilkan:
Fungsi Penyulitan dan Penyahsulitan Selamat
Berikut ialah contoh penyulitan dan penyahsulitan selamat menggunakan Libsodium:
// Safe encryption function function safeEncrypt($message, $key) { $nonce = sodium_randombytes_buf(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); return base64_encode($nonce . sodium_crypto_secretbox($message, $nonce, $key)); } // Safe decryption function function safeDecrypt($encrypted, $key) { $decoded = base64_decode($encrypted); $nonce = substr($decoded, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); $ciphertext = substr($decoded, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); return sodium_crypto_secretbox_open($ciphertext, $nonce, $key); }
Menguji Libsodium
Untuk menguji ini pelaksanaan:
// Get a random key $key = sodium_randombytes_buf(SODIUM_CRYPTO_SECRETBOX_KEYBYTES); // Your message to encrypt $message = 'Encrypting this message using Libsodium'; // Encrypt and decrypt $ciphertext = safeEncrypt($message, $key); $plaintext = safeDecrypt($ciphertext, $key); // Output results var_dump($ciphertext); // Encrypted message var_dump($plaintext); // Decrypted message
Pendekatan ini menyediakan tahap keselamatan yang lebih tinggi apabila menyulitkan data, mengurangkan potensi kelemahan dan memastikan integriti maklumat sensitif.
Atas ialah kandungan terperinci Bagaimanakah Libsodium Boleh Meningkatkan Keselamatan Penyulitan dan Penyahsulitan AES PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!