入力テキストを UTF-8 でエンコードし、160ビットの SHA-1 ダイジェストを40文字の16進数で返します。既知のテキストチェックサムや旧システムのテストデータの再現に使えます。計算対象はテキストそのものであり、Git オブジェクトや任意のファイルの元のバイト列ではありません。比較前に、下の例で入力内容を確認してください。
SHA-1は決定的で一方向のハッシュですが、既知の衝突攻撃があるため新しいセキュリティフローには不向きです。互換性確認だけに使い、保護が必要な場合はSHA-256、HMAC、署名、パスワードハッシュ方式を選んでください。
このテーマに関するよくある疑問と回答をまとめました。
SHA-1は160ビット(16進数40文字)のハッシュを生成します。Gitコミットや証明書で広く使用されていましたが、現在は暗号用途としては弱いとされています。
SHA-1は既知の衝突攻撃のため、暗号用途としては非推奨です。パスワード以外の整合性確認にはSHA-256またはSHA-3を使い、パスワード保存にはパスワードハッシュ方式を使ってください。
いいえ、ハッシュ関数は一方向です。
いいえ、SHA-1ハッシュはすべてブラウザ内で実行されます。入力データはJavaScriptでローカルにハッシュ化され、外部サービスに送信されることはありません。
例のハッシュは読みやすさのため10文字ずつ空白で区切っています。比較するときは空白を除いてください。改行も入力バイト列の一部です。末尾に改行を付けない abc の結果は a9993e3647 06816aba3e 25717850c2 6c9cd0d89d です。同じ文字列に LF 改行を1つ付けると 03cfd74366 1f07975fa2 f1220c5194 cbaff48451 になります。比較前に空白・大文字小文字・改行形式を確認してください。コマンドラインの echo は通常、末尾に改行を追加します。
例のハッシュは読みやすさのため10文字ずつ空白で区切っています。比較するときは空白を除いてください。UTF-8 を使用します。引用符・空白・末尾の改行を含めずに 中文 の2文字を入力すると、7be2d2d20c 106eee0836 c9bc2b9398 90a78e8fb3 になります。別の文字コードではバイト列が変わります。ファイルのチェックサムと一致するには、BOM や改行を含め、計算対象のバイト列が完全に同じである必要があります。デコード済みのテキストを貼り付けても、任意のバイナリファイルの元のバイト列は保持できません。
例のハッシュは読みやすさのため10文字ずつ空白で区切っています。比較するときは空白を除いてください。SHA-1 形式のリポジトリでは、Git はテキストだけでなく、オブジェクトヘッダーと内容をまとめてハッシュ化します。blob のヘッダーには種類・バイト数・ゼロバイトが含まれます。末尾に改行のない abc に対し、本ツールは a9993e3647 06816aba3e 25717850c2 6c9cd0d89d、Git の blob ID は f2ba8f84ab 5c1bce84a7 b441cb1959 cfc7093b7f です。コミットオブジェクトには tree・parent の参照、作者情報、メッセージなども含まれます。本ツールは Git オブジェクトを再現しません。