SHA(Secure Hash Algorithm)は、米国国家安全保障局(NSA)によって設計された一連のハッシュ関数です。 SHA-1は160ビット(20バイト)のハッシュ値を生成し、SHA-256は256ビット(32バイト)、SHA-512は512ビット(64バイト)のハッシュ値を生成します。
SHAハッシュ関数は、同じ入力に対して常に同じハッシュ値を生成します。しかし、わずかに異なる入力に対しては、 全く異なるハッシュ値を生成します。これは「雪崩効果」と呼ばれる特性です。
セキュリティの観点からは、SHA-1は現在では推奨されていませんが、SHA-256とSHA-512は依然として安全であると考えられています。 これらは、デジタル署名、メッセージ認証コード、パスワードのハッシュ化など、様々なセキュリティアプリケーションで使用されています。
例えば、「Hello, World!」という文字列のSHA-256ハッシュ値は
dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
となります。
Linuxでは、sha1sum
、sha256sum
、sha512sum
コマンドを使用して
それぞれSHA-1、SHA-256、SHA-512ハッシュを生成することができます。
SHA-1ハッシュを生成する例:
echo -n "Hello, World!" | sha1sum
結果: 0a0a9f2a6772942557ab5355d76af442f8f65e01 -
SHA-256ハッシュを生成する例:
echo -n "Hello, World!" | sha256sum
結果: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f -
SHA-512ハッシュを生成する例:
echo -n "Hello, World!" | sha512sum
結果: 374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387 -
ファイルのSHA-256ハッシュを生成する例:
sha256sum ファイル名
結果: ハッシュ値 ファイル名
複数のファイルのSHA-256ハッシュを一度に生成する例:
sha256sum ファイル1 ファイル2 ファイル3
ハッシュ値を検証する例:
sha256sum -c ハッシュリストファイル
※ハッシュリストファイルは「ハッシュ値 ファイル名」の形式で記述されています。