SHA-1 ハッシュコード計算機
出版された: 2025年2月16日 23:22:45 UTC
セキュア ハッシュ アルゴリズム 1 (SHA-1) ハッシュ関数を使用して、テキスト入力またはファイルのアップロードに基づいてハッシュ コードを計算するハッシュ コード計算機。SHA-1 Hash Code Calculator
SHA-1 (Secure Hash Algorithm 1) は、NSA によって設計され、1995 年に NIST によって公開された暗号化ハッシュ関数です。160 ビット (20 バイト) のハッシュ値を生成します。これは通常、40 文字の 16 進文字列として表されます。SHA-1 は、データの整合性、デジタル署名、証明書のセキュリティ保護に広く使用されていましたが、衝突攻撃に対する脆弱性のため、現在は安全ではないと考えられています。古いシステムと互換性のあるハッシュ コードを計算する必要がある場合に備えて、ここに含まれていますが、新しいシステムを設計するときには使用しないでください。
完全開示:このページで使われているハッシュ関数の特定の実装を書いたのは私ではない。これはPHPプログラミング言語に含まれる標準関数である。私は便宜上、ウェブ・インターフェースを作成し、ここで一般に利用できるようにしただけである。
SHA-1ハッシュアルゴリズムについて
私は数学者ではないので、このハッシュ関数を数学者以外の人にも理解できるような方法で説明しようと思います。科学的な数学バージョンでの説明が欲しければ、他の多くのウェブサイトで見つけることができます ;-)
SHA-1 は、1 つの単語、1 つの文、または 1 冊の本全体など、あらゆるメッセージを受け取り、非常に特殊な方法で細断する特殊なシュレッダーのようなものだと考えてください。ただし、単に細断する代わりに、常に 40 桁の 16 進数文字からなる一意の「細断コード」を魔法のように吐き出します。
- 例えば、「こんにちは」と入力すると
- f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0のような40桁の16進数が得られます。
何を入力したか(短いか長いか)に関係なく、出力は常に同じ長さになります。
「魔法のシュレッダー」は次の 4 つのステップで動作します。
ステップ1: 紙(パディング)を準備する
- シュレッダーにかける前に、紙を準備する必要があります。シュレッダーのトレイにぴったり収まるように、メッセージの最後に空白を追加することを想像してください。
- それはクッキーを焼くときのようなもので、生地が型に均等に詰まっていることを確認します。
ステップ2:均等に切る(分割)
- シュレッダーは大きな塊を好みません。そのため、準備したメッセージを、大きなケーキを完璧なスライスに切るのと同じように、より小さく、均等な大きさの断片に切り刻みます。
ステップ3:秘密のレシピ(混ぜる、つぶす)
- ここからがすごいところです! シュレッダー内では、メッセージの各部分が一連のミキサーとローラーを通過します。
- ミキシング: いくつかの秘密の材料 (組み込みのルールと数字) を使用してメッセージを混ぜ合わせます。
- マッシュ:パーツを特殊な方法で押しつぶしたり、ひっくり返したり、回転させたりします。
- ねじり: 紙を折り紙のように折るように、一部のパーツをねじったり反転させたりします。
各ステップでメッセージはより複雑になりますが、機械が常に従う非常に特殊な方法で複雑になります。
ステップ4: 最終コード(ハッシュ)
- すべての混合とマッシュアップが終わると、メッセージの固有の指紋のように、きちんとスクランブルされたコードが生成されます。
- たとえあなたが変わっても 元のメッセージに 1 文字だけ変更を加えると、出力はまったく異なるものになります。それがこのメッセージの特別な点です。
SHA-1 が今後使用されるべきでない理由は、非常に賢い人々がシュレッダーを騙して 2 つの異なるメッセージに対して同じコードを作成する方法を考え出したためです (これを衝突と呼びます)。
SHA-1 の代わりに、より強力でスマートな「シュレッダー」が存在します。この記事を書いている時点では、ほとんどの用途で私がデフォルトで使用しているハッシュ アルゴリズムは SHA-256 です。もちろん、そのための計算機も持っています:SHA-256 ハッシュコード計算機