PHP 5.3 ने एक नई एन्क्रिप्शन विधि पेश की है जो वास्तव में उपयोग करना आसान है: openssl_encrypt
और openssl_decrypt
। यह यहाँ नहीं अच्छी तरह से प्रलेखित है, इसलिए यहाँ एक सरल उदाहरण है:
$textToEncrypt = "My super secret information.";
$encryptionMethod = "AES-256-CBC"; // AES is used by the U.S. gov't to encrypt top secret documents.
$secretHash = "25c6c7ff35b9979b151f2136cd13b0ff";
//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);
//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);
//Result
echo "Encrypted: $encryptedMessage <br>Decrypted: $decryptedMessage";
मैं 256 एईएस चुना है क्योंकि यह ठोस और तेज है। यू.एस. द्वारा इसे शीर्ष गुप्त दस्तावेजों को एन्क्रिप्ट करने के लिए अपनाया गया है। यह तेजी से मशीन और सॉफ्टवेयर पर विचार कर रहा है।यहां उपलब्ध एन्क्रिप्शन विधियों की एक सूची दी गई है:
एईएस-128-सीबीसी, एईएस-128-सीएफबी, एईएस-128-सीएफबी 1, एईएस-128-सीएफबी 8, एईएस-128-ईसीबी, एईएस-128-ओएफबी, एईएस- 1 9 2-सीबीसी, एईएस -192-सीएफबी, एईएस -192-सीएफबी 1, एईएस -192-सीएफबी 8, एईएस -192-ईसीबी, एईएस -192-ओएफबी, एईएस -256-सीबीसी, एईएस -256-सीएफबी, एईएस -256- सीएफबी 1, एईएस -256-सीएफबी 8, एईएस -256-ईसीबी, एईएस -256-ओएफबी, बीएफ-सीबीसी, बीएफ-सीएफबी, बीएफ-ईसीबी, बीएफ-ओएफबी, कैमेलिया-128-सीबीसी, कैमेलिया-128-सीएफबी, कैमेलिया- 128-सीएफबी 1, कैमेलिया-128-सीएफबी 8, कैमेलिया-128-ईसीबी, कैमेलिया-128-ओएफबी, कैमेलिया -192-सीबीसी, कैमेलिया -192-सीएफबी, कैमेलिया -192-सीएफबी 1, कैमेलिया -192-सीएफबी 8, कैमेलिया -192- ईसीबी, कैमेलिया -192-ओएफबी, कैमेलिया -256-सीबीसी, कैमेलिया -256-सीएफबी, कैमेलिया -256-सीएफबी 1, कैमेलिया -256-सीएफबी 8, कैमेलिया -256-ईसीबी, कैमेलिया -256-ओएफबी, सीएएसटी 5-सीबीसी, सीएएसटी 5- सीएफबी, सीएएसटी 5-ईसीबी, सीएएसटी 5-ओएफबी, डीईएस-सीबीसी, डीईएस-सीएफबी, डीईएस-सीएफबी 1, डीईएस-सीएफबी 8, डीईएस-ईसीबी, डीईएस-ईडीई, डीईएस-ईडीई-सीबीसी, डीईएस-ईडीई-सीएफबी, डीईएस-ईडीई- ओएफबी, डीईएस-ईडीई 3, डीईएस-ईडीई 3-सीबीसी, डीईएस-ईडीई 3-सीएफबी, डीईएस-ईडीई 3-सीएफबी 1, डीईएस-ईडीई 3-सीएफबी 8, डीईएस-ईडीई 3-ओएफबी, डीईएस-ओएफबी, डीईएसएक्स-सीबीसी, आरसी 2-40-सीबीसी, आरसी 2-64-सीबीसी, आरसी 2-सीबीसी, आरसी 2-सीएफबी, आरसी 2-ईसीबी, आरसी 2-ओएफबी, आरसी 4, आरसी 4-40, सीईडी-सीबीसी, सीईडी-सीएफबी, सीईडी-ईसीबी, सीईडी-ओएफबी, एएस-128-सीबीसी, एएस-128-सीएफबी, एएस-128-सीएफबी 1, एएस-128-सीएफबी 8, एएस-128-ईसीबी, एएस-128-ओबीबी, एएस -192-सीबीसी, एईएस -192- सीएफबी, एईएस -192-सीएफबी 1, एईएस -192-सीएफबी 8, एईएस -192-ईसीबी, एईएस -192-केबी, एएस -256-सीबीसी, एईएस -256-सीएफबी, एईएस -256-सीएफबी 1, एईएस -256-सीएफबी 8, एईएस -256-ईसीबी, एएस -256-ओबीबी, बीएफ-सीबीसी, बीएफ-सीएफबी, बीएफ-एसीबी, बीएफ-ऑफबी, कैमेलिया-128-सीबीसी, कैमेलिया-128-सीएफबी, कैमेलिया-128-सीएफबी 1, कैमेलिया-128- सीएफबी 8, कैमेलिया-128-एसीबी, कैमेलिया-128-ओबीबी, कैमेलिया -192-सीबीसी, कैमेलिया -192-सीएफबी, कैमेलिया -192-सीएफबी 1, कैमेलिया -192-सीएफबी 8, कैमेलिया -192-एसीबी, कैमेलिया -192-ओबीबी, कैमेलिया -256-सीबीसी, कैमेलिया -256-सीएफबी, कैमेलिया -256-सीएफबी 1, कैमेलिया -256-सीएफबी 8, कैमेलिया -256-एसीबी, कैमेलिया -256-ऑफबी, कास्ट 5-सीबीसी, कास्ट 5-सीएफबी, कास्ट 5-ईसीबी, कास्ट 5- ऑफबी, डेस-सीबीसी, डेस-सीएफबी, डेस-सीएफबी 1, डेस-सीएफबी 8, डेस-एर्ब, डेस-एडे, डेस-एडी-सीबीसी, डेस-एडी-सीएफबी, डेस-एडे-ऑफब, डेस-एडे 3, डेस- ede3-cbc, des-ede3-cfb, des-ede3-cfb1, des-ede3-cfb8, des-ede3-ofb, des-ofb, desx-cbc, rc2-40-cbc, rc2-64-cbc, rc2- सीबीसी, आर c2-Cfb, rc2-ईसीबी, rc2-ओएफबी, RC4, rc4-40, बीज सीबीसी, बीज Cfb, बीज ईसीबी,
महत्वपूर्ण अद्यतन बीज ओएफबी !!!
धन्यवाद Hobo और Jorwin यह इंगित करने के लिए PHP 5.3.3> एक नया पैरामीटर है जो इस कार्य को थोड़ा और सुरक्षित बनाता है।
Jorwin his comment में इस लिंक संदर्भित, और यहाँ एक अंश है कि लागू है:
5.3.3 में वे एक नया पैरामीटर, string $iv
(आरंभीकरण वेक्टर) जोड़ा रियल मानकों हैं: string openssl_encrypt (string $data , string $method , string $password, bool $raw_output = false, string $iv)
यदि $iv
गुम है, तो एक चेतावनी जारी की जाती है: "एक खाली प्रारंभिक वेक्टर (iv) का उपयोग संभावित रूप से असुरक्षित है और अनुशंसित नहीं है"।
हैं $iv
, एक और चेतावनी बहुत छोटा है: "चतुर्थ पारित कर दिया केवल 3 बाइट्स लंबा है, सिफर \ 0 के साथ ठीक 8 बाइट्स की एक चतुर्थ, गद्दी की उम्मीद है"
ही चतुर्थ openssl_decrypt()
में इस्तेमाल किया जाना चाहिए
वोट दिया क्योंकि मुझे नहीं लगता था कि वार्तालाप वास्तव में लगभग दो-तरफा एन्क्रिप्शन होने वाला है ... –