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