ハッシュ値を段階的に生成する方法
簡単な回答
ハッシュを生成するには: ハッシュ ジェネレーターを開き、アルゴリズム (SHA-256 を推奨) を選択し、テキストを入力すると、ハッシュ ダイジェストが即座に表示されます。このツールは、安全なハッシュ化に Web 暗号 API (crypto.subtle.digest) を使用します。すべての処理はローカルで行われ、入力がブラウザーから離れることはありません。
導入
ハッシュ関数は、任意のサイズの入力を受け取り、ハッシュまたはダイジェストと呼ばれる固定サイズの出力を生成します。 SHA-256 のような暗号化ハッシュ関数には特別な特性があります。同じ入力は常に同じ出力を生成し、異なる入力は異なる出力を生成し (衝突耐性)、入力を見つけるために出力を反転することはできません (一方向)。ハッシュは、データの整合性の検証、パスワードの保存、デジタル署名、およびコンテンツのアドレス指定に使用されます。このガイドでは、ブラウザでハッシュを生成する方法を説明します。
ステップバイステップ
-
ハッシュ生成ツールを開く
ハッシュ ジェネレーター ツールのページに移動します。このツールは、SHA-256、SHA-384、SHA-512、SHA-1、MD5 の複数のアルゴリズムをサポートしています。
-
ハッシュアルゴリズムを選択します
ほとんどのユースケースでは SHA-256 を選択してください。これは最新の標準であり、広くサポートされており、既知の脆弱性はありません。セキュリティを強化するには、SHA-512 を使用します。セキュリティを重視した用途では、MD5 と SHA-1 を避けてください。衝突防止のために壊れています。
-
入力テキストを入力してください
ハッシュするテキストを入力フィールドに貼り付けるか入力します。このツールは、入力の UTF-8 エンコードされたバイトをハッシュします。
-
ハッシュダイジェストを読む
このツールは、crypto.subtle.digest() (SHA の場合) を使用してハッシュを計算し、16 進数でエンコードされたダイジェストを表示します。 SHA-256 は 64 文字の 16 進文字列を生成します。結果は即座に表示されます。
-
ハッシュをコピーする
[コピー] をクリックして、ハッシュ ダイジェストをクリップボードにコピーします。ファイルの整合性チェック、パスワードの保存 (ソルトとキーのストレッチを使用)、またはデータの重複排除に使用します。
例
SHA-256 テキストのハッシュ
入力: Hello, World!
出力: dffd6021bb2bd5b0af676290809ec008dfca50a8d29e6ac0a52c2d7e9f0a3b0c
SHA-256 空の文字列のハッシュ
入力:
出力: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
MD5 ハッシュ (セキュリティのためではなくレガシー)
入力: Hello, World!
出力: ed0760733d7505e9ceacf8af225020ac
よくある問題
- セキュリティのために MD5 または SHA-1 を使用します。どちらも衝突耐性がありません。セキュリティ目的には、SHA-256 以上を使用してください。
- ソルトを使用せずにパスワードをハッシュする - 同一のパスワードは同一のハッシュを生成し、レインボー テーブル攻撃を可能にします。 bcrypt、scrypt、または Argon2 を固有のソルトとともに使用します。
- ハッシュが可逆であることを期待します。暗号化ハッシュは一方向です。ハッシュから入力を復元することはできません。
- 大文字と小文字の区別 - 16 進ハッシュは通常小文字です。ハッシュを大文字と小文字を区別せずに比較するか、比較する前に正規化します。
ヒント
- データの整合性の検証、コンテンツのアドレス指定、およびデジタル署名には SHA-256 を使用します。
- パスワードの保存には、生の SHA-256 ではなく、bcrypt、scrypt、または Argon2 を使用してください。これらのアルゴリズムには、ブルート フォースに対抗するためのキー ストレッチ機能が備わっています。
- ブラウザで Web 暗号 API (crypto.subtle.digest) を使用すると、安全なネイティブ ハッシュを実現できます。ライブラリは必要ありません。
- ハッシュ ジェネレーターを使用すると、即座にプライベート ハッシュを実行できます。入力がブラウザーから離れることはありません。