コンテンツではなく、ファイルの名前を含む crc32 ハッシュのリストを取得しています。
「vacationplans_2010.txt」のようなハッシュ化された名前である文字列を復号化できる必要があります
長さは 25 文字未満です。
これは可能ですか?
コンテンツではなく、ファイルの名前を含む crc32 ハッシュのリストを取得しています。
「vacationplans_2010.txt」のようなハッシュ化された名前である文字列を復号化できる必要があります
長さは 25 文字未満です。
これは可能ですか?
一方向ハッシュ関数です。復号化できません。
他のユーザーが答えたにもかかわらず、CRC32は暗号化ハッシュ関数ではありません。整合性チェック(データチェックサム)を目的としています。暗号化ハッシュ関数は「一方向ハッシュ関数」と呼ばれることが多く、CRC32には「一方向」部分がありません。
そうは言っても、次のことを考慮する必要があります。可能なすべての25文字以下のファイル名のセットは2 ^ 32を超えるため、一部のファイル名は同じハッシュ値を持つようにバインドされます。したがって、取得するCRC32値の一部については、いくつかの可能なソース(ファイル名)が存在する可能性があります。「実際の」ソースを決定する方法が必要になります(私たちの脳は優れたパターン認識デバイスであるため、人間の決定が最良の選択であると思いますが、実際にはシナリオによって異なります)。
いくつかの方法を使用して、求めていることを部分的に達成できます。ブルートフォースはその1つです(ただし、ファイル名が25文字の場合、ブルートフォースには時間がかかる場合があります)。修正された辞書攻撃は別のオプションです。他のオプションはCRC32アルゴリズムの分析に基づいており、アルゴリズムの実装の詳細を詳しく調べる必要があります(そうしないと、実装しているものを理解するのに苦労します)。たとえば、この記事またはこの記事を参照してください。
編集:ブルースシュナイアー(とりわけ応用暗号学の著者)による定義:
一方向性関数は計算が比較的簡単ですが、逆にするのは非常に困難です。…。この文脈では、「ハード」は次のように定義されます。世界中のすべてのコンピューターが問題に割り当てられている場合でも、f(x)からxを計算するには数百万年かかります。
ハッシュ関数は、数学またはその他の関数であり、可変長の入力文字列と(プレイメージと呼ばれる)を受け取り、それを固定長(通常は小さい)の出力文字列(ハッシュ値と呼ばれる)に変換します。
一方向ハッシュ関数のセキュリティは、その一方向性です。
CRC32 のようなハッシュ関数は、与えられた (変数) 入力の単純な値を計算します。計算は元に戻すことができません。つまり、ハッシュだけでは元の値を確実に取得することはできません。