在 PHP 中加密和解密字符串
避免常见陷阱
在深入研究实现之前了解加密和解密之后,了解加密和身份验证之间的区别至关重要。为了安全的数据保护,建议使用经过身份验证的加密而不是简单的加密。此外,建议避免创建自定义加密实现,而是依赖安全且完善的库,例如 libsodium 或 defuse/php-encryption。
加密和解密
加密:
解密:
使用 Libsodium 实现
use Sodium\Crypto\SecretBox; $key = random_bytes(SecretBox::KEYBYTES); $nonce = random_bytes(SecretBox::NONCEBYTES); $ciphertext = SecretBox::encrypt($message, $nonce, $key); $plaintext = SecretBox::decrypt($ciphertext, $nonce, $key);
使用 defuse/php-encryption 实现
use Defuse\Crypto\Crypto; use Defuse\Crypto\Key; $key = Key::createNewRandomKey(); $ciphertext = Crypto::encrypt($message, $key); $plaintext = Crypto::decrypt($ciphertext, $key);
额外注意事项
注意事项
Libsodium 示例
use Sodium\Crypto\SecretBox; $key = random_bytes(SecretBox::KEYBYTES); $nonce = random_bytes(SecretBox::NONCEBYTES); $ciphertext = SecretBox::encrypt($message, $nonce, $key); $plaintext = SecretBox::decrypt($ciphertext, $nonce, $key); echo "Ciphertext: " . $ciphertext . PHP_EOL; echo "Plaintext: " . $plaintext . PHP_EOL;
以上是如何使用已建立的库安全地加密和解密 PHP 中的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!