ファイルの暗号化ハッシュを出力するクロスプラットフォーム/ポータブルプログラムを探しています

ファイルの暗号化ハッシュを出力するクロスプラットフォーム/ポータブルプログラムを探しています

私は、渡されたファイル/ファイルリストの CRC32 だけでなく、MD5、SHA などの暗号化ハッシュも生成する、Windows と Linux 間でソース移植可能なプログラム (たとえば、ANSI C など) を探しています。

私はこの実行ファイルをテラバイト単位のファイルで実行し、SHA、MD5、CRC32(将来的にはさらに増える)署名を生成するので、速度が速くなります。は重要

私が考えていたのはまさにReHashですリハッシュリハッシュ

残念ながら、ハッシュの実装にエラーがあるだけでなく、パディング(ブロックベースのアルゴリズムの場合)の実装方法にもエラーがあると多くのユーザーが不満を述べているのを目にしました。

私は暗号化の専門家ではなく、単にコードをコンパイルするだけで必要なハッシュを提供するブラックボックス ソリューションを探しているだけなので、これより良い方法はないだろうかと考えていました。

もちろん、暗号モジュールを使用して必要なものを生成する Python のグルー プログラムを作成することもできますが、C などの言語からコンパイルされたバイナリの方が望ましいでしょう。

私はこの実行ファイルをテラバイト単位のファイルに対して実行し、SHA、MD5、CRC32 (将来的にはさらに増える予定) の署名を生成し、これらすべてを Python コードから処理する予定なので、Python と互換性のあるものが好ましいですが、C のような速度を犠牲にしてはいけません。

答え1

Python の暗号化操作はネイティブ コード (C からコンパイル) で実装されています。Python プログラムで値が必要なので、それらを使用する方が簡単になります。

Linux にはチェックサム計算用のユーティリティ ( cksum、、、 ...)が付属しています。他のほとんどの unice も同様です。GNU ユーティリティ (Linux で利用できるもの) の Windows ポートがいくつかあります。md5sumsha1sumシグウィングヌウィン32マイシス、... SHA-256 および SHA-512 を取得する場合は、最新のユーティリティが必要になります。

さまざまな暗号化アルゴリズムの非常に自由なライセンスを持つ ANSI C 実装がいくつか出回っていますが、多くの場合、単一の配布物にまとめられていません。それらを検索し、小さな入力でテストして信頼性をチェックすることができます。

Windows では、チェックサムは行ストリームではなくバイト ストリームで定義されるため、ファイルを必要に応じてバイナリまたはテキストとして正しく処理していることを確認してください。(通常はバイナリ モードでファイルを開きますが、Windows の行末にトランスコードされたテキスト ファイルがある場合は、その効果を元に戻すためにテキストとして開く必要があります。) どの OS でも、ファイルを開くときにエンコード変換を行わないようにしてください。

速度は非常に重要なので、見つけられる実装をすべて集めて、中程度のサイズの入力 (数メガバイト) でベンチマークしてください。異なるアーキテクチャでは、異なる実装の方が速度が向上する可能性があります。64 ビット実装は、実行できる場合はより高速になる可能性があります。

答え2

OpenSSLにはハッシュを計算するツールがあります。cygwin (http://www.cygwin.com/) プロジェクトには openssl ツールがあります。cygwin レイヤーがあるため、純粋な Windows アプリよりも少し遅くなりますが、ハッシュ生成をスクリプト化できる環境も得られます。

関連情報