可能重复:
使用PHP加密和解密的最佳方式?
对于我的项目,我想以加密格式存储密码,
所以我已经使用它存储它md5('password'),但我的项目要求是我们应该能够解密密码,并且众所周知我们无法解密md5加密字符串.
所以我选择它来编码使用base64_decode('password')和解码它base64_decode('encodedpassword').
但我想知道这是最好的做法base64_encode吗?还是有PHP的其他加密解密技术?
首先,md5('password')是不加密的.散列数据后无法恢复原始密码.NB技术读者:由于存在有限数量的哈希值和无限数量的不同字符串,因此强力攻击也无法恢复密码.
现在,base64_encode('password')是还没有加密,除了可能在这个词的非常宽松的意义.任何人都可以查看Base64文本并恢复原始密码.
通常已知的加密包括明文和某种私钥.加密算法的一个例子是AES-256("Rijndael"是赢得AES比赛并因此获得冠军的算法的名称).AES-256使用256位密钥,在正确实施时通常被认为非常安全.
密码学不是一个应该轻易接近的话题.要做到正确是非常困难的,而当你不这样做时会产生后果,虽然这似乎是矛盾的,既微妙又严重.
您应该非常仔细地评估是否需要能够恢复密码.在99.9999999%的案例中,答案是"不".事实上,我想不出密码的纯文本对你很重要的情况.
在完成评估是否需要能够恢复密码之后,请确定您不需要能够恢复密码.
在此步骤之后,如果您仍然认为您需要能够恢复密码,请查看已编写的PHP加密库.OpenSSL是一个经过充分测试的普遍接受的加密框架,它实现了几乎所有流行的加密标准,但它可能在难以使用的一面.mcrypt通常安装并且通常更容易使用.
| 归档时间: |
|
| 查看次数: |
8950 次 |
| 最近记录: |