2017-10-13 14 views
-3

コードにジャグリングがありますが、私のテストでは条件を満たす入力が見つかりませんでした。この条件を満たす文字列を見つけることはできますか?

+0

これは非常に基本的なことですが、いくつかの研究をする必要があります –

+0

md5、セキュリティと暗号化はタグの同じリストに含まれています....これらの日md5はセキュリティとは何の関係もないはずです –

+0

Don 'あなたが欲しいものを理解する。あなたはther "md5($ myStr)"の後に ")"を忘れる –

答えて

0

最初からやりましょう。私は例を提供しますので、私はあなたの理解を助けるかもしれません。あなたが$myStr = $_GET['myStr']; を持っている最初の行で

私はちょうどあなたがこのようなあなたのURLからこの変数を取得すると仮定します:

http://localhost/md5Project.php?myStr=test 

これはあなたの変数$ myStrに値「test」を提供します。あなたが持っているあなたのif文で前進

if ($myStr == md5($myStr) 

$myStr値は"test"md5($myStr)値であるので、これは真実ではありませんので、基本的にはあなたが常につながる値"test""098f6bcd4621d373cade4e832627b4f6problem"と2つの文字列を比較する098f6bcd4621d373cade4e832627b4f6です偽にする。

+0

真実ではないでしょうか? https://stackoverflow.com/questions/235785/is-there-an-md5-fixed-point-where-md5x-x – Progrock

+0

@Progrockはい**決して**他のものの中で "テスト"は4バイトとMD5出力は16バイトです.2つの長さが異なるため、等しくなることはありません。 – zaph

+0

@zaph OP入力が 'test'であることは決して決してありません。 – Progrock

1

いいえ、myStrの値がMD5の(1度の)プリイメージを見つけるまでに下がることはありません。衝突耐性のためにMD5が壊れていますが、プレイメージを見つけることはできません。詳細情報here

あなたのコードはy = md5(y)であると推定されています。 y = md5(x)はより一般的な仮定であり、上にリンクされているウィキペディアの記事では、MD5でもこのようなH(x)を見つけることは不可能であることが記述されています。


これは、MD5を使用する必要はありません。 SHA-256、SHA-512または実際にSHA-3の機能を使用してください。たとえMD5がそれほど壊れていなくても、MD5はこれ以上使用できないほど壊れています。攻撃は常に良くなり、悪化することはありません。

関連する問題