PHP AES 加密/解密
雖然base64 編碼和mcrypt 可用於加密和解密PHP 中的字符串,但存在潛在問題這種方法。為了安全加密,建議使用現有的、可信任的 PHP 加密庫。
Libsodium 增強安全性
如果 PECL 擴充可接受,Libsodium 提供更強大的加密解決方案。它具有:
安全解密函數
以下是使用 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); }
測試Libsodium
要測試此實作:
// 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
此方法在加密資料時提供更高等級的安全性,減少潛在漏洞並確保敏感資訊的完整性。
以上是Libsodium 如何增強 PHP 的 AES 加解密安全性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!