PHP mcrypt_create_iv が遅い。

PHP mcrypt_create_ivの処理が遅い。

/* IV を作成し、キー長を定義します。Windows では、かわりに
	 * MCRYPT_RAND を使用します */
	$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM );
20:10:59 1 mcrypt_module_open
20:11:26 1 mcrypt_create_iv       30秒くらいかかっている。
20:11:26 1 mcrypt_enc_get_key_size
20:11:26 1 mcrypt_generic_init
20:11:26 1 mcrypt_generic

MCRYPT_DEV_URANDOM を使うようにしてみた。

/* IV を作成し、キー長を定義します。Windows では、かわりに
	 * MCRYPT_RAND を使用します */
	$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM );
20:12:26 1 mcrypt_module_open
20:12:26 1 mcrypt_create_iv
20:12:26 1 mcrypt_enc_get_key_size
20:12:26 1 mcrypt_generic_init
20:12:26 1 mcrypt_generic

速くなった。しかし、これでいいのかどうか、詳細なこと不明。

mcrypt_create_iv MCRYPT_DEV_RANDOM (/dev/random からデータを読む)および MCRYPT_DEV_URANDOM (/dev/urandom からデータを読む) そのうち調べてみよう。