MD5ハッシュとキーワード(1行に1つ)を含むテキストファイルをC#アプリケーションに入力しようとしています。文字列がMD5ハッシュかどうかを確認する方法はありますか?私はMSDNを見て、MD5クラスで何も見つけることができませんでした。文字列がMD5ハッシュかどうかをテストする方法はありますか?
答えて
正規表現:行うには[0-9a-f]{32}
もちろん16進数でエンコードされていると仮定します: –
この94476226E1DD479C8E1FAB7A8FDEFFFAは動作しません。corect正規表現は '[0-9a-fA-F] {32}' –
です。実際には、正規表現は '^ [0-9a- @EduardFlorinescuは、大文字と小文字を区別しないフラグを設定できない場合には、[f] {32} $ '(大文字小文字を区別しない'/i'フラグ)または '^ [0-9a-fA -F] {32} $' '[0-9a-f] {32}'は長い文字列にもマッチするので、何かのMD5ではなくランダムな16進数のエンコードされたデータになります。 – poncha
MD5ハッシュは実際にはバイナリデータです。文字列を取得していれば、おそらく何らかの形でエンコードされているはずです。ベース64または16進数。文字列が正しい長さのバイナリ(16バイト)で正しくエンコードされているかどうかをテストできます。それはすべてですが、は決してデータをハッシュした結果ではないバイナリ値であるのに対し、私はあなたがそのような値を認識できることを非常に疑う。理想的には、そのような値は、もちろん...
その32バイト長場合と0-9そのおそらくMD5-Fが存在すべきであるが、100%
A MD5ハッシュは、128ビットの値ではありません。これは、通常、長さ16のbyte[]
、またはstring
として表され、各バイトは2桁の16進数で表されます。 MD5ハッシュには、128ビットの値がMD5ハッシュかどうかを検出するための内部構造や「シグネチャ」がありません。
まず最初は、それに基づいて試合を設計し、MD5ハッシュのエンコード方法を動作するようにファイルを調べています。
私は正しいと思うのは、時には大文字も含めて大文字も含めて大文字も含めています。
[0-9a-fA-F]{32}
または
[0-9a-f]{32}(?i)
あなたはファイルの内容のサンプルを投稿することができますか?データにパターンがありますか? –
残念ながら、私はできません。私は私のアプリをテストするための本当のファイルがありません。 – Theresa