使用PHP将MD5哈希解密为String

时间:2011-03-21 23:26:30

标签: php

如何使用PHP将MD5哈希解密为字符串?

4 个答案:

答案 0 :(得分:5)

哈希不是加密 - 你不能。

答案 1 :(得分:3)

无法解密哈希。散列函数本质上是单向函数。

如果您尝试为用户数据创建加密,那么您应该使用普通的加密/解密函数。

如果您正在尝试解密'哈希'密码,那么......祝你好运。

答案 2 :(得分:2)

你应该在你假设它的解密之前阅读它实际上做了什么,我不会详细说明,但是MD5实际上是不可能的,根本不应该使用。

MD5哈希可能会碰撞意味着完全不同的字符串会产生相同的哈希值,从而导致算法漏洞利用。

如果您想要2路加密,您应该这样做:

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

//Encrypt
base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,md5($key),$string,MCRYPT_MODE_CBC,md5(md5($key))));

//Decrypt
rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

引自:Best way to use PHP to encrypt and decrypt passwords?

答案 3 :(得分:0)

如果您正在寻找解密,您可以创建(或获取)彩虹表 - 基本上,创建一个密码生成器,使用MD5进行加密并根据需要创建多个哈希值。将哈希值保存到数据库中。从那里,搜索你的哈希值。