PHP使用的最佳密码加密和解密技术


best password encryption and decryption technique to be used with PHP

可能重复:
使用PHP加密和解密的最佳方式?

对于我的项目,我想以加密格式存储密码,

所以我使用md5('password')存储了它,但我的项目要求是我们应该能够解密密码,正如大家所知,我们不能解密md5加密的字符串。

所以我选择了使用CCD_ 2对其进行编码并使用base64_decode('encodedpassword')对其进行解码。

但我想知道使用base64_encode是一种最佳实践吗?或者PHP还有其他加密解密技术吗?

首先,md5('password')不是加密。哈希数据后,无法恢复原始密码。技术读者注意:暴力攻击也不会恢复密码,因为有有限数量的哈希和无限数量的不同字符串。

现在,base64_encode('password'),也不是加密,除非可能是在这个词最松散的意义上。任何人都可以查看Base64文本并恢复原始密码。

众所周知,加密由明文和某种私钥组成。加密算法的一个例子是AES-256("Rijndael"是赢得AES竞赛的算法的名称,因此也是标题)。AES-256使用256位密钥,并且在正确实现时通常被认为是非常安全的。

密码学不是一个应该轻易讨论的话题。要想纠正错误是极其困难的,如果不纠正,后果会非常严重,尽管这似乎是矛盾的,既微妙又严重。

您应该非常仔细地评估是否需要能够恢复密码。在99.9999999%的情况下,答案是"否"。事实上,我想不出密码的明文对你有什么影响。

评估完是否需要恢复密码后,决定不需要恢复密码。

在这一步之后,如果您仍然认为需要恢复密码,请查看已经编写的PHP加密库。OpenSSL是一个经过良好测试的公认加密框架,几乎实现了所有流行的加密标准,但它可能有点难以使用。mcrypt的安装非常普遍,而且通常更易于使用。

我通常只带sha-1+盐。。,看看crypt函数。

对于PHP版本5.3+

你会使用Bcrypt,这是我所知道的最强的哈希。

但问题是,它比其他加密方式慢。

我推荐AES256,它比bcrypt更快,也安全