Tôi đang gặp sự cố với lớp mật mã của mình. Đôi khi nó rất nhanh. Đôi khi tuy nhiên nó là chậm. mã Im đang sử dụng như sauLớp mật mã và mcrypt_create_iv chậm ở lần
class Cipher {
private $securekey, $iv;
function __construct() {
$this->securekey = hash('sha256','51(^8k"12cJ[6&cvo3H/[email protected]',TRUE);
$this->iv = mcrypt_create_iv(32);
}
function encrypt($input) {
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->securekey, $input, MCRYPT_MODE_ECB));
}
function decrypt($input) {
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->securekey, base64_decode($input), MCRYPT_MODE_ECB));
}
function storeIV() {
return $this->iv;
}
}
Có bất kỳ gợi ý nào về việc tại sao điều này có thể chậm và đôi khi tôi có thể khắc phục điều này?
Tải máy chủ như thế nào khi chạy nhanh? Khi nó chạy chậm? Bạn đã ghi lại những loại thời gian nào? – Crontab
Tải máy chủ giống hệt nhau giữa tốc độ nhanh/chậm khi tải nhanh trong khoảng 0,5 giây khi nó chậm, tôi có thể đợi khoảng 2 phút – bretterer
Chỉ cần lưu ý bảo mật: Tôi tin rằng bạn đang sử dụng lớp Mật mã để mã hóa nhiều bản rõ. Thông thường một iv không nên được tái sử dụng, vì vậy nó là tốt hơn tôi nghĩ rằng để tạo ra IV trong phương pháp mã hóa thay vì trong constructor. Xem http://stackoverflow.com/questions/11821195/use-of-initialization-vector-in-openssl-encrypt để xem cách lưu trữ và khôi phục. Ngoài ra, lưu ý rằng mcrypt_create_iv có thể rất chậm nếu hệ thống không đủ entropy. Cá nhân tôi sử dụng openssl_random_pseudo_bytes. Ngoài ra, tôi nghĩ rằng có đối số iv mất tích trong các cuộc gọi hàm mcrypt_encrypt/decrypt của bạn. –