web-dev-qa-db-ja.com

SHA-256などの安全なハッシュのチェックに関するクロスプラットフォームの便利なヘルプ

多くの場合、ファイルの適切な暗号化チェックサムを取得できると便利です。 SHA-256 ハッシュ。これは、ハッシュの信頼できるソースがある限り、ファイルの整合性を検証するために使用できます。

コマンドラインからのSHA-256とMD5の両方のサポートは、Ubuntuでデフォルトで提供されており、sha256sumおよびmd5sumプログラムを介して、おそらくLinuxおよびBSDの他のフレーバーでも提供されています。

Mac(10.5)では、「md5」コマンドラインプログラムが表示されますが、SHA-256は表示されません。 MD5のハッシュ衝突問題を考えると、これは理想的とは言えない選択です。

また、Windowsにデフォルトでインストールされている、暗号ハッシュを計算するソフトウェアが見つかりません。私が見た「標準」に最も近いのは、オプションのコマンドラインプログラムをダウンロードする方法へのMicrosoftの参照でした ファイルチェックサム整合性検証ユーティリティ SHA-1を実行できます(これはまだ比較的安全です)。 SHA-256ではありません。

SHA-256で遭遇したダウンロードの1つは、クロスプラットフォームのGUIサポート用の hashcalc ですが、それを吟味したり試したりしていません。

  • WindowsまたはMac用のデフォルトの安全なハッシュソフトウェア(MD5より優れている)がありませんか?

  • さまざまなオペレーティングシステムに適切なハッシュツールのアドバイスを提供するページはどこにありますか?理想的には、安全で便利なGUIソリューションにつながるでしょう。

説明:他の人と共有できるアドバイスを探しています。これは、ハッシュを安全に処理するのに役立ちます。 「安全」とは、たとえば、公務員が比較的危険でないと比較的簡単に判断できるものを意味します。たとえば、デフォルトでインストールされ、文書化されてベンダーによって裏付けられたソフトウェアは、インターネットからサードパーティの実行可能ファイルをインストールするよりもはるかにリスクが低くなります。サードパーティのソフトウェアである必要がある場合は、専門家によって吟味および推奨されるものが推奨されます。

(参照 クロスプラットフォーム署名

21
nealmcb

特にUnix向けに頭に浮かぶ1つのツール(または複数形にすることになっている)はopensslです。

openssl dgst -sha256 path/to/file

openssl dgst コマンドは、多くの一般的なハッシュオプションを提供し、opensslはデフォルトでほとんどのUnixシステムにインストールされ、Windowsでも使用できます。 OSXにも同梱されていると思います。 Windowsがそのようなツールなしで出荷するのは理想的な状況ではありません。

GUIツールに関しては、あなたがすでに述べたHashCalc以外は個人的に知りません。

11
user2213

Windowsの場合、Windows 7/Server 2008 R2以降にデフォルトでインストールされるPowerShellを使用できます。 Get-FileHash関数は、Windows 8.1およびWindows Server 2012 R2に付属するPowerShell v4で導入されました。古いバージョンのPowerShellの場合、 James Manningのブログにあるこれらのスクリプト でうまくいきます。

Get-FileHashの使用例:

C:\Windows> Get-FileHash -Algorithm md5 .\notepad.exe

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
MD5             24DA05ADE2A978E199875DA0D859E7EB                                       C:\Windows\notepad.exe

サポートされるアルゴリズムは、SHA1、SHA256、SHA384、SHA512、MACTripleDES、MD5およびRIPEMD160です。

14
Kjetil Limkjær

WindowsとUNIXの混合環境で、一般的な暗号アルゴリズムに使用するものは次のとおりです。

  • OpenSSL 多くの計算、特にハッシュ(HMACではない)とX.509証明書の操作。
  • Python 's hashlib and hmac for SHA and HMAC 。

残念ながら、どちらもWindowsには付属しておらず、個別にインストールする必要があります。

Pythonを使用してファイルのHMACを計算する簡単な1行を次に示します。ターミナルでキーを16進数で入力します(または、標準入力にecho … |で渡しますが、キーがシェルの履歴に残ることに注意してください)。ファイルはメモリに読み込まれますが、大きなファイルの場合は行われません。

python -c "import binascii, hashlib, hmac, sys; print hmac.new(binascii.unhexlify(str.strip(sys.stdin.readline())), open(sys.argv[1]).read(), hashlib.sha256).hexdigest()" myfile.dat

Windowsでは、非技術者が使用できる単純なハッシュ検証(SHAおよびいくつか、およびHMACをサポート))は SlavaSoft HashCalc です。残念ながら、オープンソースなので、その動作に最大限の自信がないかもしれません。

米国のNIST(National Institute of Standards and Technology)はどうですか。暗号検証プログラムを実行し、暗号化ハッシュアルゴリズムの検証済み実装を次の場所にリストします http://csrc.nist.gov/groups/STM/cavp/documents/ shs/shaval.htm

いくつかのJavaクロスプラットフォームで使用できるライブラリが含まれています。

3
this.josh

私は実際にpython hashlib apiの周りに小さなラッパーpythonラッパーをこの目的のために作成しました。私はnix、mac、 Windows、特にsha256。

また、オプションで使用できる小さなwxPython GUIもあります。

コードはこちら: https://github.com/caseydunham/hashy

pythonのインストールがオプションではない場合、pythonのインストールを必要としない、このための実行可能なビルドを簡単に作成できます。

2
Casey

sphlib は、Cで記述された多くのハッシュ関数を実装するライブラリです。md5sum/ sha1sumの動作を模倣するコマンドラインツール(sphsum)が含まれていますとそのilk、MD5とSHA-256(および他の機能の束)をサポートします。すべての種類のUnixライクなシステム(MacOSを含む)とWindowsでもコンパイルできます(ビルド手順は含まれていますが、 Visual CMinGW または lccwin32 )。

sphlibには、これらすべてのハッシュ関数のJava実装も含まれています。これについて言えば、Javaと.NETの両方にデフォルトでSHA-256実装が含まれているため、 a Javaアプレットまたはハッシュ処理を行うC#アセンブリ、あるいはその両方。したがって、OracleまたはMicrosoftのいずれかが提供するコンポーネントのみに依存することになるため、それよりも「公式」にすることは困難です。 。

md5のほかに、MacOS X(少なくとも10.7)には、SHA- *ファミリー(SHA-1、SHA-224、SHA-256、SHA-384、SHA)のいずれかでハッシュを計算できるshasumというユーティリティが含まれています-512)。次のように使用します。

shasum -a 256 thefilename

ファイルthefilenameのSHA-256ハッシュを取得します。

1
Thomas Pornin

@kjetil-limkjærが指摘するように、Powershellバージョン4以降には Get-FileHash コマンドレットが含まれています。

powershell get-filehash -algorithm sha1 <file_to_check>

doskey を使用して、覚えやすい永続的なエイリアスを作成します。

doskey sha256sum=powershell get-filehash -algorithm sha256 "$1"
doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"
1
Christian Long