栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用PHP加密和解密密码的最佳方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用PHP加密和解密密码的最佳方法?

**您不应加密密码,而应使用bcrypt之类的算法对密码进行哈希处理。不过,这是加密/解密的方法:

$key = 'password to (en/de)crypt';$string = ' string to be encrypted '; // note the spaces

加密:

$iv = mcrypt_create_iv(    mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC),    MCRYPT_DEV_URANDOM);$encrypted = base64_enpre(    $iv .    mcrypt_encrypt(        MCRYPT_RIJNDAEL_128,        hash('sha256', $key, true),        $string,        MCRYPT_MODE_CBC,        $iv    ));

解密:

$data = base64_depre($encrypted);$iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));$decrypted = rtrim(    mcrypt_decrypt(        MCRYPT_RIJNDAEL_128,        hash('sha256', $key, true),        substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)),        MCRYPT_MODE_CBC,        $iv    ),    "");

警告 :上面的示例对信息进行加密,但不对密文进行身份验证以防止篡改。你应该
依赖于安全性未经验证的加密所提供易受填充神谕攻击以来,特别是代码。

另外,不要只对加密密钥使用“密码”。 加密密钥是随机字符串。


3v4l.org上的演示:

echo 'Encrypted:' . "n";var_dump($encrypted); // "m1DSXVlAKJnLm7k3WrVd51omGL/05JJrPluBonO9W+9ohkNuw8rWdJW6NeLNc688="echo "n";echo 'Decrypted:' . "n";var_dump($decrypted); // " string to be encrypted "


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号