0

Cakeハッシュ関数の文字列に最大長の制限はありますか。

ありがとう

4

1 に答える 1

1

利用可能なメモリのみ (つまり、文字列全体をロードできる必要があります)。ただし、ハッシュ出力は常に同じ長さです。

メモリに収まらない大きなデータ BLOB をハッシュする場合は、チャンクで処理する必要があります。PHP にはいくつかの関数があります ( http://nl1.php.net/manual/en/ref.hash.phpを参照)。基本的な手順は次のとおりです。

  1. ハッシュ構造を作成する ( hash_init)
  2. チャンクを読み取り、ハッシュ構造を更新します ( hash_update)
  3. 最後のチャンクの後、ハッシュをファイナライズして出力を取得します ( hash_final)

便宜上、PHP にはhash_update_filehash_update_streamラッパーがあります。

于 2013-07-15T20:40:54.667 に答える