0

MD4を3秒間で何回呼べるか計測してみました。Openssl の MD4 を使用しました。しかし、興味深い問題に気づきました。直接電話MD4(array, size, digest);したところ、3 秒以内に 5438501 個の MD4 を実行できるとアプリに表示されました。私が使っEVP_Digest(array, size, digest, NULL, EVP_md4(), NULL);たところ、3 秒で 4787370 個の MD4 を実行したとのことでした。

では、直接呼び出しは EVP API を使用するよりも高速ですか? 何故ですか?

4

1 に答える 1

2

EVP_Digest使用する方法よりも高速である必要がある理由がわかりません:-)

EVP_Digestあなたを使用すると、「彼」(それ)にハッシュアルゴリズムを使用するよう委任されます。明らかに、これにはいくらかのオーバーヘッドがあります。それともEVP_Digest、「デフォルト」の MD4 アルゴリズムよりも「魔法のように高速な」MD4 アルゴリズムを使用できると思いますか?

md4/md5から(強調を追加)

アプリケーションは、ハッシュ関数を直接呼び出す代わりに、より高いレベルの関数 EVP_DigestInit(3) などを使用する必要があります。

そしてEVP_DigestInitから

EVP ダイジェスト ルーチンは、メッセージ ダイジェストへの高レベルインターフェイスです。

高レベル==遅い場合:-)

では、なぜ を使用する必要があるのEVP_Digestでしょうか。以前と同じページで説明されています。

メッセージ ダイジェストへの EVP インターフェイスは、ほとんどの場合、低レベル インターフェイスより優先して使用する必要があります。これは、コードが使用されるダイジェストに対して透過的になり、より柔軟になるためです。

于 2013-08-28T12:03:31.020 に答える