मुझे अपने सिफर वर्ग के साथ कोई समस्या है। कभी-कभी यह बहुत तेज़ होता है। कभी-कभी हालांकि यह धीमा है। कोड का उपयोग कर इम रूपसिफर वर्ग और mcrypt_create_iv समय पर धीमा है
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;
}
}
इस प्रकार है वहाँ क्यों इस समय धीमा हो सकता है पर किसी भी सुझाव हैं और मैं इसे ठीक कर सकते हैं? MCRYPT_RAND
(सिस्टम यादृच्छिक संख्या जनरेटर), MCRYPT_DEV_RANDOM
और MCRYPT_DEV_URANDOM
(पढ़ने/dev/यादृच्छिक से डेटा) (/ dev/urandom से डेटा पढ़ने):
सर्वर लोड लोड होने पर क्या होता है? जब यह धीमा चलता है? आपने किस प्रकार के रिकॉर्ड दर्ज किए हैं? – Crontab
सर्वर लोड तेजी से/धीमी गति के बीच समान होते हैं जब यह तेज़ होता है तो यह लगभग 5 सेकंड में धीमा होने पर लोड हो रहा है, मैं लगभग 2 मिनट तक प्रतीक्षा कर सकता हूं – bretterer
बस एक सुरक्षा नोट: मेरा मानना है कि आप एन्क्रिप्ट करने के लिए अपने सिफर क्लास का उपयोग कर रहे हैं एकाधिक सादा पाठ। आम तौर पर एक iv का पुन: उपयोग नहीं किया जाना चाहिए, इसलिए बेहतर है कि मैं चौथाई को एन्क्रिप्ट विधि में कन्स्ट्रक्टर में उत्पन्न करना चाहता हूं। Http://stackoverflow.com/questions/11821195/use-of-initialization-vector-in-openssl-encrypt देखें कि इसे स्टोर और पुनर्स्थापित कैसे करें। साथ ही, ध्यान दें कि अगर सिस्टम में पर्याप्त एन्ट्रॉपी नहीं है तो mcrypt_create_iv बहुत धीमा हो सकता है। व्यक्तिगत रूप से मैं openssl_random_pseudo_bytes का उपयोग करता हूं। साथ ही, मुझे लगता है कि आपके mcrypt_encrypt/decrypt फ़ंक्शन कॉल में iv तर्क अनुपलब्ध है। –