我的数据库中有哈希密码。实际上我必须将此密码转换为普通文本。
以下是我的密码
' 6fad15b73f04cba8fd65da0d621fa42eff61001b'
我尝试过如下但不起作用,
$enc = "6fad15b73f04cba8fd65da0d621fa42eff61001b";
$dec = base64_decode ($enc);
echo $dec;die;
答案 0 :(得分:2)
Base64 编码与哈希完全不同。
您可以在此处阅读有关base64的内容: https://en.wikipedia.org/wiki/Base64
关于哈希在这里:https://en.wikipedia.org/wiki/Hash_function
或者自己搜索信息(还推荐有关youtube上计算机文件频道散列的视频)。
长话短说:没有将散列文本转换回纯文本的选项。这就是我们使用该方法存储密码的原因 - 只有密码的作者才能知道真正的价值 - 没有其他人(开发人员和可以窃取密码的人)。用于破解散列密码的流行方法称为“暴力攻击”,它基于将已知的流行密码散列值与数据库中现有密码进行比较。
记录到应用程序的方式通常基于对用户在登录期间键入的密码进行哈希处理,并比较其值是否等于数据库中已存在的值。密码的普通值不应存储在应用程序的任何类型的长期记忆中。
您几乎不可能将哈希密码转换回来。
另外,我建议您阅读编码和加密和哈希之间的差异。以下是关于此的简明文章:http://www.differencebetween.info/difference-between-encryption-encoding-and-hashing
答案 1 :(得分:0)
哈希加密函数是一种单向函数,这意味着您可以将密码转换为哈希值,但不能轻易地将哈希值转换为密码。