2011-03-21 44 views
2

如何使用PHP將MD5 hash解密爲字符串?使用PHP解密MD5 hash到字符串

+2

散列函數是單向函數:http://en.wikipedia.org/wiki/Hash_functions – 2011-03-21 23:37:23

+0

www.freerainbowtables.com試圖對簡單密碼進行反向工程,但是想法是MD5應該仍然是一個謎。 – 2011-03-21 23:58:55

回答

5

哈希不是加密 - 你不能。

+1

你可以與碰撞。 – RobertPitt 2011-03-21 23:58:21

+0

在一些他如何通過生成哈希來破解它,並將它與他想要的世界列表進行比較。 – SIFE 2011-03-22 00:02:56

+2

不,他不能。他可能會找到產生相同散列的數據。他無法可靠地再生原始字符串。 – Erik 2011-03-22 00:11:56

3

沒有辦法解密散列。散列函數本質上是單向函數。

如果您嘗試爲用戶數據創建加密,那麼您應該使用普通的加密/解密函數。

如果你想解密'散列'密碼,那麼....祝你好運。

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?

0

(或獲得)彩虹表 - 基本上,創建一個密碼生成器,用MD5進行加密,並根據需要創建儘可能多的哈希。將散列保存到數據庫。從那裏,做一個搜索你的散列。