双向加密:存储可检索的密码
加密和解密
加密和解密在 PHP 中解密密码,利用封装密钥拉伸的加密类, IV隐藏、HMAC验证等安全措施。提供了示例类实现:
class Encryption { // Cipher and mode used for encryption private $cipher; private $mode; // Constructor (usage example) public function __construct($cipher = MCRYPT_BLOWFISH, $mode = MCRYPT_MODE_CBC) { $this->cipher = $cipher; $this->mode = $mode; } // Encrypts data public function encrypt($data, string $key): string { // ... } // Decrypts data public function decrypt($data, string $key): string { // ... } }
选择最安全的算法
最安全的加密方法是 MCRYPT_BLOWFISH 和 MCRYPT_RIJNDAEL_128,块大小为 8 字节, MCRYPT_MODE_CBC
私钥存储
要增强安全性,请考虑使用多个密钥:一个用于用户,一个用于应用程序,一个用于用户特定的盐。安全地存储应用程序特定的密钥,与 Web 根目录分开。将用户特定密钥与加密密码一起存储在数据库中。要求用户在需要解密密码时输入私钥。
防止密码泄露
为了减少密码被盗,请实施严格的安全措施来防止系统泄露, MITM 攻击和 HTTP 流量嗅探。对所有流量使用 SSL 并消除服务器上的任何漏洞。
其他加密注意事项
以上是如何在 PHP 中安全地加密和解密密码?的详细内容。更多信息请关注PHP中文网其他相关文章!