2

これは私を夢中にさせています、私のMD5は同意しません。私はこの文字列を持っています:

Combinations Generator は、関連する属性を選択することで、一連の組み合わせを簡単に作成できるツールです。たとえば、3 つの異なるサイズと 2 つの異なる色の T シャツを販売している場合、ジェネレーターは 6 つの組み合わせを作成します。

md5 関数 (php 5.5.0 を使用) を使用して自分のコンピューターでハッシュすると、次のハッシュが生成されます。

http://www.miraclesalad.com/webtools/md5.phpは、私のコンピューターの結果と一致しています。

http://www.md5.cz/は、私のコンピューターとミラクルサラダの両方に同意しません。

この文字列/md5 ペアは、md5.cz と同じ結果をもたらす別のコンピューターによって最初に計算されました。

エンコーディングの問題について読んだので (ただし、文字列には非 ASCII 文字は含まれていません)、コンピューターで次のコードを試しました。

<?php

$str = "The Combinations Generator is a tool that allows you to easily create a series of combinations by selecting the related attributes. For example, if you're selling t-shirts in three different sizes and two different colors, the generator will create six combinations for you.";

echo "$str<BR/>";
echo md5($str)."<BR/>";
echo md5(utf8_encode($str))."<BR/>";
echo md5(utf8_decode($str))."<BR/>";


die();

出力は次のとおりです。

Combinations Generator は、関連する属性を選択することで、一連の組み合わせを簡単に作成できるツールです。たとえば、3 つの異なるサイズと 2 つの異なる色の T シャツを販売している場合、ジェネレーターは 6 つの組み合わせを作成します。

422f3f656e1a5f95e8b5cf7565d815b5

422f3f656e1a5f95e8b5cf7565d815b5

422f3f656e1a5f95e8b5cf7565d815b5

したがって、utf8 についてではありません。

何が起こっているのか分かりますか?

4

4 に答える 4

5

私の推測では、「you're」という単語の ' マークと文字エンコーディングに関係があると思われます。その引用を削除すると、両方のサイトが同じ md5 を報告します。

于 2013-08-23T21:10:14.210 に答える
0

上記の文字列を、質問でリンクした両方のサイトに段階的にフィードしようとしましたが、T シャツを販売している場合は、md5.cz でジェネレーターを壊す文字がアポストロフィであることがわかりました。

特殊文字の文字列をハッシャーに渡す前に取り除き、おそらく urlencode() などを使用して文字列の一意性を保持すると、任意の文字列に対して一致するハッシュが得られるはずです。

于 2013-08-23T21:13:26.103 に答える
-1

md5はmd5です。それだけです。異なる (バグのない) 実装から異なるハッシュを取得する場合、異なる入力をフィードしています。md5 は、入力がわずかに異なる場合でも、大きく異なる出力を生成するように設計されていることに注意してください。テスト文字列の 1 つの末尾にある単一の空白文字 (タブ、改行など) は、別の入力を入力したため、予想されるハッシュを完全に破棄します。

于 2013-08-23T21:08:50.390 に答える