0

ファイルの MD5、SHA-1、およびその他のハッシュ関数を計算するための小さなユーティリティを cocoa で作成しています。正しく理解できれば、少なくとも MD5 アルゴリズムは、ファイルのごく一部を同時にロードするだけで済むような方法で実現できます。これは良い考えのように思えます。ユーザーの RAM に加えて、10 GB アーカイブのハッシュを計算するためだけに使用します。

Cocoaを使用してこれを達成するにはどうすればよいですか?

4

3 に答える 3

3

NSData基盤となる OS (Mac OS または iOS) の仮想メモリ システムが必要に応じてファイルのセクションを自動的にページングするように、ファイルをメモリ マップできます。NSDataコンストラクターの 1 つをoptions:パラメーターとNSDataReadingMappedIfSafeorNSDataReadingMappedAlwaysオプションと共に使用します。

于 2012-06-08T20:53:02.067 に答える
1

ココアには次の 3 つの選択肢があります。

  • メモリマップされた NSData
  • NSストリーム
  • NSファイルハンドル

ここでストリームを使用する方法を示すオープン ソース コードがあります: https://github.com/karelia/KSCrypto/blob/master/KSSHA1Stream.h

于 2012-06-10T04:06:53.840 に答える
1

ファイルをメモリ マッピングせずにこれを行うにはNSFileHandle-readDataOfLength:.

于 2012-06-09T08:39:10.433 に答える