8A-25-A5-14-E9-E0-A8-02-0E-91-32-46-44-7E-EE-11
上記はハッシュ化されたテキストです。原文は「welcome1」です。誰かがここで使用されているアルゴリズムを特定できますか?
8A-25-A5-14-E9-E0-A8-02-0E-91-32-46-44-7E-EE-11
上記はハッシュ化されたテキストです。原文は「welcome1」です。誰かがここで使用されているアルゴリズムを特定できますか?
このサイトによると、明らかに「welcome1」の Unicode 表現の md5 ハッシュです。
MD5 (ユニコード):
...
8a25a514e9e0a8020e913246447eee11:welcome1
具体的には、文字列「welcome1」の UTF-16LE ( UTF16リトルエンディアン) 表現です。
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] output = md.digest("welcome1".getBytes("UTF-16LE"));
for(byte out: output){
System.out.printf("%x", out);
}
System.out.println();
出力:
8a25a514e9e0a82e913246447eee11
ダッシュはハッシュ出力の一部ではなく、16 進文字のみです。それらを取り出してハッシュをグーグルで検索すると、特に「welcome1」のような一般的なフレーズの場合、通常は結果が表示されます
これは、文字ではなくバイトを操作するため、ハッシュ アルゴリズムを扱うときに文字エンコーディングを覚えておくことが重要である理由を示す、優れたオブジェクト レッスンです。ASCII または UTF8 (または UTF-16BE) で「welcome1」をハッシュすると、文字の基になるバイト表現が異なるため、出力が大幅に異なります。