PHP-and-MySQL/C4/MD5-Encryption/Hindi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time Narration
0:00 नमस्कार। यदि आप php की सुरक्षा के बारे में चिन्तित हैं, तो यह टयूटोरियल आपको MD5 फंक्शन के बारे में बताएगा।
0:09 यह एक पूर्व-परिभाषित फंक्शन(function) है जो स्ट्रिंग(string) को एक MD5 हैश में बदलता है और आपको आपका डेटा सुरक्षित करने की अनुमति देता है।
0:16 MD5 हैश(hash) एक प्रकार के आवर्तन का इस्तेमाल करता है जिससे कि यह विकोड नहीं किया जा सकता - इसको केवल एन्क्रिप्ट किया जा सकता है।
0:21 MD5 हैश(hash) को ढूँढने का केवल एक तरीका है कि स्ट्रिंग(string) को भी MD5 हैश(hash) में बदल दें और इसकी तुलना एक स्ट्रिंग(string) से करें जो कि पहले से ही हैश(hash) में बदली जा चुकी है।
0:31 यदि आपको नहीं समझ आ रहा है कि मेरा मतलब क्या है तो मैं इस टयूटोरियल में यह बताऊँगा।
0:38 मैं स्ट्रिंग(string) को पूर्व-निर्धारक के द्वारा शुरू करूँगा, यह मेरा पासवर्ड बनने जा रहा है।
0:45 मैं इसे 'user password' बोलूँगा और इसकी वेल्यू 'abc' होगी।
0:55 फिर मैं 'user password enc' नामक एक नया वेरिएबल बनाऊँगा, जिसका मतलब है एन्क्रिप्शन (encryption) और मैं मेरे MD5 फंक्शन्स(functions) परिभाषित करूँगा, जोकि मूलतः m, d और 5 है।
1:09 इसके अंदर कुछ भी हो सकता है अतः आप कुछ भी दे सकते हैं, जिसे आप यहाँ एन्क्रिप्ट (encrypt) करना चाहते हैं।
1:13 किन्तु अभी के लिए मैं अपना यूजर पासवर्ड(user password) वेरिएबल एन्क्रिप्ट (encrypt) करूँगा जिसको हमने यहाँ ऊपर परिभाषित किया है।
1:18 और यदि हम केवल इसे एको(echo) करें, आप देख सकते हैं कि हमें....,
1:27 हमारी MD5 एन्क्रिप्टेड (encrypted) स्क्रिप्ट की वेल्यू मिलती है जोकि यह है।
1:32 आप देख सकते हैं कि यह नौ सौ से शुरू होता है और मुझे लगता है कि यहाँ करीब 20 समान कैरेक्टर्स(characters) हैं।
1:39 लेकिन जो कुछ भी मैं वेल्यू में भी बदलूँ, यह काफी कुछ उतनी ही लम्बाई का रह रहा है।
1:44 केवल एक चीज़ जो बदल रही है वह है कंटेंट(content).
1:52 अतः हमने स्ट्रिंग को एन्क्रिप्ट (encrypt) कर लिया है जिसके द्वारा आप जो यहाँ हैश देख रहे हैं वो 'abc' है।
2:00 अब मैं यहाँ जल्दी से एक प्रोग्राम या स्क्रिप्ट बनाऊँगा, जो उपयोगकर्ता से एक इनपुट लेने जा रहा है और यह जाँचेगा यदि पासवर्ड 'abc' है।
2:10 अब इसको परम्परागत रूप से करने का तरीका यह है कि अपने एन्क्रिप्शन(encryption) को बहार निकालें।
2:17 हम यह कहने के लिए एक सरल जाँच कर सकते हैं यदि पोस्ट पासवर्ड हमारे यूजर पासवर्ड के बराबर है तो कुछ करिये अन्यथा कुछ और करिये।
2:29 अतः उदाहरणस्वरुप आपके पास एक 'incorrect password' नामक एरर(error) हो सकती है और यहाँ आप कह सकते हैं आपका पासवर्ड सफलतापूर्वक यूज़र पासवर्ड से मैच हुआ है
2:38 किन्तु जब हम डेटा को महत्व देते हैं जो हमारे पास या तो पोस्ट वेरिएबल्स में होते हैं या डेटा बेस में रहते हैं।
2:45 यह वेल्यू हो सकता है कि डेटाबेस से सूचित की गयी हो और डेटा बेसेस दुर्भाग्य से टूट सकते हैं।
2:51 अतः यदि एक डेटा बेस टूट सकता है तो आप चाहेंगे कि आपके यूज़र्स के पासवर्ड एन्क्रिप्ट हो, ताकि वो ढूँढने में काफी मुश्किल हों।
3:04 स्पष्ट रूप से, 'abc' ब्रेक करने के लिए सरल होगा जैसे बारी आती है क्योंकि abc एक कॉमन पासवर्ड है।
3:12 'abc' को MD5 हैश(hash) में बदल कर आप इसकी, अपने डेटाबेस में पहले से ही संचित MD5 हैश(hash) से तुलना कर सकते हैं और यदि यह दो हैशेस(hashes) बराबर होते हैं तब उन्हें पता लग जाएगा कि MD5 हैश(hash) 'abc' के बराबर है, जैसा कि बस साथ में शुरू होने के लिए वह पहले से ही हैश(hash) हैं।
3:29 फिर भी हम क्या करेंगे कि हम इस वेल्यू को यहाँ लेंगे- हमारा user password encrypted - और हम अपने पोस्टेड पासवर्ड (posted password) की तुलना अपने एन्क्रिप्टेड पासवर्ड(encrypted password) से करेंगे।
3:47 अब वास्तव में हमें क्या करने की आवश्यकता है कि 'user password enc' की तुलना करने में सक्षम होने की जरूरत है।
3:55 यह जैसा कि एन्क्रिप्टेड (encrypted) के लिए है और यह पोस्टेड पासवर्ड(posted password) बिना एन्क्रिप्टेड (encrypted) के लिए है।
4:01 अतः यदि आप पोस्टेड पासवर्ड (posted password) का MD5 हैश(hash) लेते हैं और उसकी तुलना संचित पासवर्ड के MD5 हैश(hash) से करते हैं, हम अपने उपयोगकर्ता को पता करवा सकते हैं यदि उन्होंने सही या ठीक पासवर्ड एंटर किया है।
4:14 तो मैं बोलूँगा यदि पोस्टेड पासवर्ड(posted password) का MD5 हैश(hash) संचित पासवर्ड के MD5 हैश(hash) के बराबर है, जोकि यहाँ है, यह वेरिएबल है जो हम यहाँ इस्तेमाल कर रहे हैं, फिर हम सही सूचना दर्शा सकते हैं या हम एक एरर(error) सूचना दर्शा सकते हैं।
4:33 और यदि ये बराबर होते हैं तब मैं कहूँगा इस स्क्रिप्ट को क्लियर करें और लिखूँगा 'correct' अन्यथा मैं बस स्क्रिप्ट को मिटा दूँगा और लिखूँगा 'incorrect'.
4:48 इस समय हम इनकी तुलना नहीं कर सकते क्योंकि हमने कोई वेरिएबल्स नहीं डाले हैं।
4:53 यहाँ नीचे मैं एक फॉर्म बनाऊँगा।
4:57 Method भी POST होने जा रहा है क्योंकि हम यहाँ ऊपर पोस्ट तरीका इस्तेमाल कर रहे हैं।
5:01 और action मेरा पेज होने जा रहा है अर्थात जिस पर अभी 'MD5 dot php' है।
5:08 फिर मैं बस इसके दो एलिमेंट्स बनाऊँगा जोकि एक इनपुट टेक्स्ट बॉक्स है और मैं पासवर्ड का नाम दूँगा।
5:14 केवल एक ही कारण है कि मैं इसका type text के रूप में इस्तेमाल कर रहा हूँ कि आप कंटेंट देख सकें अन्यथा आप कैरेक्टर्स(characters) को खाली करने के लिए इसे पासवर्ड दे सकते हैं।
5:22 अगला, मेरे पास एक इनपुट बॉक्स है और यह कहता है, चलिए अभी के लिए केवल लॉगिन कहते हैं क्योंकि यह एक MD5 एन्क्रिप्शन(encryption) के लिए एक प्रतीकात्मक उपयोग है जोकि एक log-in स्क्रिप्ट होगी।
5:34 जब मैं अपना पेज रिफ्रेश(refresh) करता हूँ आप अभी 'incorrect' देख सकते हैं।
5:38 ऐसा इसलिए क्योंकि हम अपना पोस्ट वेरिएबल नहीं जाँच रहे हैं।
5:41 यहाँ मैं केवल लिख सकता हूँ यदि पासवर्ड मौजूद है तब हम इस पूरे कोड को एको(echo) कर सकते हैं और हम इसको अधिक पठनीय के लिए इंडेंट कर सकते हैं। चलिए मैं इसे यहाँ वापस ले आता हूँ।
6:00 ठीक है अतः यदि हमारा पासवर्ड जमा हो चुका है, जिसका मतलब है यह फॉर्म इस वेल्यू के साथ जमा हो चुका है, फिर हम कहते हैं "क्या encrypted पासवर्ड का MD5 हैश(hash) अर्थात फॉर्म में जमा किया गया पासवर्ड, जोकि यहाँ हमारा पोस्ट वेरिएबल है, संचित पासवर्ड के हैश(hash) के बराबर है "
6:18 अतः हम यहाँ इस if स्टेटमेंट में एन्क्रिप्टेड (encrypted) डेटा के साथ काम कर रहे हैं।
6:23 यदि यह बराबर होता है तो हम यह दर्शाएँगे अन्यथा हम 'incorrect' दर्शाएँगे। अतः चलिए इसको पुनः रिफ्रेश(refresh) करते हैं।
6:29 अब मेरा पासवर्ड 'abc' है अतः यदि मैं अपने पासवर्ड के रूप में 'Alex' टाइप करता हूँ तो आप देख सकते हैं कि हमें एक 'incorrect' एरर सूचना मिली है।
6:37 यदि हम अपना पासवर्ड 'abc' टाइप करते हैं, जोकि सही है, आप देख सकते हैं हमें 'correct' सूचना मिली है।
6:43 केवल आपको कंटेंट की जानकारी देने के लिए मैं यह क्या कर सकता हूँ कि मैं लिख सकता हूँ एको(echo) और मैं लिख सकता हूँ 'compared' और चलिए अपना user password लेते हैं- वास्तव में, नहीं- चलिए अपना encrypted पासवर्ड लेते हैं।
7:07 अतः 'user password enc' की तुलना करने के लिए मैं केवल उसमें और पोस्टेड पासवर्ड में आगे जोड़ दूँगा।
7:14 हम इन सबको encrypted चाहते हैं अतः यहाँ मैं MD5 टाइप करूँगा।
7:20 इसको करने का सर्वोत्तम तरीका यह है कि यहाँ ऊपर एक नया वेरिएबल बनाएँ कहिये, MD5- इसको कट करिये- अतः 'enc' या 'submitted enc' इसके बराबर होगा।
7:37 फिर यहाँ हम अपने वेरिएबल्स को केवल बदल सकते हैं अतः यह इसको थोड़ा अधिक धाराप्रवाह बनाता है।
7:49 यह इसके कार्य को बेहतर या कुछ कम नहीं बनाता।
7:56 किन्तु यहाँ जब हम 'abc' चुनते हैं और जब हम लॉगिन पर क्लिक करते हैं और हमें एक एरर मिलती है।
8:01 चलिए वापस आते हैं और जाँचते हैं.....और ऐसा इसलिए क्योंकि हमें इनको कर्ली कोष्ठकों में रखने की आवश्यकता है क्योंकि यहाँ हमें दो लाइनों का कोड मिला है।
8:16 चलिए वापस चलते हैं, बैक पर क्लिक करिये, 'abc' चुनिए और हम यहाँ इसकी यहाँ इससे तुलना कर रहे हैं।
8:26 चलिए इसे यहाँ अभी ब्रेक करते हैं ताकि हम देख सकें कि क्या हो रहा है।
8:34 ठीक है अतः हमने यहाँ इसकी यहाँ इससे तुलना कर ली।
8:38 आप देख सकते हैं कि यह बिलकुल समान MD5 हैश हैं, हालाँकि यह यहाँ संचित पासवर्ड है और यह पासवर्ड है जो हमने जमा किया है।
8:46 अतः आप देख सकते हैं कि हम अपने जमा encrypted से अपने संचित encrypted तक जाँच कर रहे हैं।
8:51 इसके अनेक लाभ हैं, आप इसे डेटाबेसेस में उपयोग कर सकते हैं जब आप एक यूज़र को डेटा बेस में दर्ज़ कर रहे हैं, पासवर्ड को encrypt करिये फिर उसे संचय करिये।
8:59 यदि आप एक पासवर्ड के लिए लॉगिन फॉर्म में जाँच कर रहे हैं, तो लॉगिन फॉर्म में उपयोगकर्ता द्वारा दर्ज़ पासवर्ड को encrypt करिये और उसको डेटा बेस के encrypted पासवर्ड से जाँचें।
9:08 अतः आप देख सकते हैं कि इसके अनेक उपयोग हैं और यह वाकई में निर्धारित करने के लिए सरल है। आपको केवल यहाँ एक MD5 फंक्शन(function) की आवश्यकता है।
9:16 अभी आपको MD फंक्शन्स (functions) पर बस इतना ही जानने और इसे प्रयोग करने और इसे अपने फॉर्म्स में कैसे लागू करें यह जानने की आवश्यकता है।
9:23 ठीक है देखने के लिए धन्यवाद।
9:26 मेरे पास कुछ अन्य सुरक्षा ट्यूटोरियल्स हैं जो आने वाले हैं अतः उनको देखिये। अलविदा।
9:29 यह स्क्रिप्ट रवि द्वारा अनुवादित है।