一方向ハッシュ関数とは何ですか? 定義と意味

一方向ハッシュ関数は、入力のフィンガープリントを生成する数学関数ですが、元の入力に戻る方法はありません。 入力が同じである場合、ハッシュは常に同じです。それがまったく変更された場合でも、1文字でも、出力ハッシュは完全に異なります。 ハッシュを使用して、入力Aが入力Bと同一であることを確認できますが、別の数学関数である暗号化のように、出力から入力を取り戻すために使用することはできません。

Technipagesは一方向ハッシュ関数を説明します

一方向ハッシュの出力は、入力の長さに関係なく、常に同じ長さです。 たとえば、ハッシュアルゴリズムmd5の出力は、次のように表される場合、常に32文字です。 16進数。これは、入力が1文字の長さ、またはの作品全体の長さである場合に当てはまります。 シェイクスピア。

ハッシュは、2つのものが同一であることを確認するのに理想的です。これには、2つの主な用途があります。 「整合性検証」は、サーバーファイルの既知のハッシュをダウンロードされたファイルのハッシュと比較することにより、ダウンロードされたファイルがサーバー上のファイルと同一であることを検証するために使用されます。
ハッシュアルゴリズムは、送信されたパスワードのハッシュが保存されたハッシュと一致することを確認するためにデータベースでも使用されます。 これは、ハッカーがデータベースへの不正アクセスを取得した場合、パスワード自体を取得するのではなく、直接ログインに使用できないハッシュを取得することも意味します。

ハッシュアルゴリズムセットの出力の長さは、可能な出力の数を制限し、ハッシュの「衝突攻撃」に対するその強さを表します。 衝突攻撃は、2つの異なる入力が同じ出力を生成する場所です。 同じ出力を生成する2つのランダムな入力を見つけることは非常に困難であり、単一の特定のハッシュ出力の衝突を見つけることは非常に困難です。

一方向ハッシュ関数の一般的な使用法

  • 一方向ハッシュアルゴリズムには2つのタイプがあります。高速と低速、高速はファイル検証に使用され、低速はパスワードハッシュに使用されます。
  • 一方向ハッシュアルゴリズムの入力は、出力を分析したり、別の関数を実行したりして決定することはできません。
  • ハッカーが盗まれたデータベースからのパスワードハッシュのリストを持っている場合、ハッカーはどの一方向ハッシュアルゴリズムが使用されたかを調べ、次のように推測します。 可能な限り多くの可能なパスワード。データベースのエントリと一致する出力がある場合、入力がユーザーのパスワードであることがわかります。 パスワード。

一方向ハッシュ関数の一般的な誤用

  • 一方向ハッシュアルゴリズムは暗号化の一種であり、パスワードや別の機能を使用して、後日取得するためにデータを安全に保存するために使用できます。