2011-03-21 19 views
2

PHPを使用してMD5ハッシュを文字列に復号化するにはどうすればよいですか?PHPでMD5ハッシュを文字列に復号する

+2

ハッシュ関数は一方向関数です:http://en.wikipedia.org/wiki/Hash_functions –

+0

www.freerainbowtables.comは簡単なパスワードをリバースエンジニアリングしようとしますが、MD5は謎のままにしておかなければなりません。 –

答えて

5

ハッシングは暗号化ではありません。

+1

あなたは衝突することができます。 – RobertPitt

+0

ハッシュを生成して、彼が世界リストのようにしたいものと比較すると、彼はそれをどのようにクラックすることができますか。 – SIFE

+2

彼はできません。彼は潜在的に同じハッシュを生成するデータを見つけることができます。彼は元の文字列を確実に再生成することはできません。 – Erik

3

ハッシュを復号化する方法はありません。ハッシュ関数は、本来1ウェイ関数です。

ユーザーデータの暗号化を作成する場合は、通常の暗号化/復号化機能を使用する必要があります。

「ハッシュされた」パスワードを解読しようとしている場合は、そのようなことをよく実行してください。

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

(または取得)rainbow tables - 本質的に、MD5で暗号化し、必要な数のハッシュを作成するパスワードジェネレータを作成します。ハッシュをデータベースに保存します。そこから、あなたのハッシュを検索してください。

関連する問題