पासवर्ड एन्क्रिप्ट करना

(PHP पसंदीदा) में पासवर्ड एन्क्रिप्ट करने का सबसे तेज़, अभी तक सुरक्षित तरीका क्या है, और जिसके लिए आप जिस विधि को चुनते हैं वह पोर्टेबल है?

दूसरे शब्दों में यदि मैं बाद में अपनी वेबसाइट को एक अलग सर्वर पर माइग्रेट करता हूं तो क्या मेरे पासवर्ड काम करना जारी रखेंगे?

जिस विधि का मैं अब उपयोग कर रहा हूं, वह सर्वर पर स्थापित पुस्तकालयों के सटीक संस्करणों पर निर्भर है।

0
जोड़ा संपादित
विचारों: 3
ओह आदमी! बस उल्लेख है कि मुझे जाना है और हवा जाल और एक पिरान्हा टैंक का एक गुच्छा स्थापित करना चाहता है ...
जोड़ा लेखक gyurisc, स्रोत

7 उत्तर

एविल जीनियस के लिए एक आधिकारिक पैच है (फाइलप्लानेट पर दूसरों के बीच उपलब्ध), लेकिन यहां एक अनौपचारिक पैच भी है: http://www.n1nj4.com/EvilPlanet/TheGame/mod_unofficialpatch.php जो बहुत सारे बदलाव जोड़ता है।

3
जोड़ा

मैं जरूरी नहीं कि सबसे तेज़ लेकिन एक अच्छी शेष राशि की तलाश कर रहा हूं, कुछ सर्वर जो इस कोड को विकसित कर रहे हैं, काफी धीमे हैं, स्क्रिप्ट जो पासवर्ड रखती है और स्टोर करती है, उसे चलाने के लिए 5-6 सेकंड लगते हैं, और मेरे पास है इसे हिंगिंग तक सीमित कर दिया गया है (यदि मैं 1-2 सेकंड में हैशिंग आउट करता हूं तो यह टिप्पणी करता है)।

इसे सबसे सुरक्षित नहीं होना चाहिए, मैं बैंक के लिए कोडिंग नहीं कर रहा हूं (अभी अभी) लेकिन मैं निश्चित रूप से नहीं करूँगा पासवर्ड को सादा-पाठ के रूप में संग्रहीत करता हूं।

0
जोड़ा
हालांकि यह बंद है, आपको अभी भी हैश पासवर्ड सबसे सुरक्षित रूप से संभव होना चाहिए। कुछ बैंक खाता पासवर्ड प्राप्त करने का सबसे आसान तरीका क्या है? एक शानदार दिखने वाली वेबसाइट बनाएं जिसमें आप लोगों को साइन अप करें। अधिकांश लोग मौजूदा पासवर्ड का उपयोग करेंगे। अब आपके पास पासवर्ड की एक बड़ी सूची है। प्वाइंट होने के नाते, अन्य लोगों के पासवर्ड प्राप्त करने का सबसे तेज़ तरीका आपके सिस्टम को हैक करना होगा अगर मुझे पता था कि यह एक खराब कार्यान्वयन था।
जोड़ा लेखक Andrew T Finnell, स्रोत

यह इंगित किया जाना चाहिए कि आप पासवर्ड को एन्क्रिप्ट नहीं करना चाहते हैं, तो आप इसे हैश करना चाहते हैं।

एन्क्रिप्टेड पासवर्ड को डिक्रिप्ट किया जा सकता है, जिससे किसी को पासवर्ड दिखाई दे। हैशिंग एक तरफा ऑपरेशन है ताकि उपयोगकर्ता का मूल पासवर्ड (क्रिप्टोग्राफिक रूप से) चला गया हो।


जिसके लिए आपको एल्गोरिदम चुनना चाहिए - वर्तमान में स्वीकृत मानक का उपयोग करें:

  • SHA-256

और जब आप उपयोगकर्ता का पासवर्ड हैश करते हैं, तो इसके साथ किसी अन्य जंक में हैश भी सुनिश्चित करें। उदा .:

  • password: password1
  • salt: PasswordSaltDesignedForThisQuestion

नमक को उपयोगकर्ता के पासवर्ड में संलग्न करें:

String s = HashStringSHA256("password1PasswordSaltDesignedForThisQuestion");
0
जोड़ा
-1 SHA-256 पासवर्ड हैशिंग फ़ंक्शन नहीं है और यह इस उद्देश्य के लिए सुरक्षित नहीं है। यह एक (पीबीकेडीएफ 2) का हिस्सा हो सकता है, लेकिन यह पूरी तरह से कुछ अलग है। इसके अलावा आपका उदाहरण भ्रामक है, क्योंकि नमक एक चालाक वाक्यांश नहीं होना चाहिए, यह एक यादृच्छिक (प्रति उपयोगकर्ता) मान होना चाहिए।
जोड़ा लेखक Brendan Long, स्रोत

मैं पीटर के साथ हूँ। डेवलपर पासवर्ड समझ में नहीं आता है। हम सभी चुनते हैं (और मैं इसके लिए भी दोषी हूं) एमडी 5 या एसएचए 1 क्योंकि वे तेज़ हैं। इसके बारे में सोचते हुए ('किसी ने हाल ही में मुझे यह बताया) कि कोई समझ नहीं आता है। हमें एक हैशिंग एल्गोरिदम चुनना चाहिए जो बेवकूफ धीमी है। मेरा मतलब है, चीजों के पैमाने पर, एक व्यस्त साइट हैश पासवर्ड क्या होगा? प्रत्येक 1/2 मिनट? कौन परवाह करता है अगर यह 0.8 सेकंड बनाम 0.03 सेकंड सर्वर के अनुसार लेता है? लेकिन सभी प्रकार के सामान्य ब्रूट-फोर्किश हमलों को रोकने के लिए वह अतिरिक्त धीमापन बहुत बड़ा है।

मेरे पढ़ने से, bcrypt विशेष रूप से सुरक्षित पासवर्ड हैशिंग के लिए डिज़ाइन किया गया है। यह blowfish पर आधारित है, और कई कार्यान्वयन हैं।

For PHP, check out PHPPass http://www.openwall.com/phpass/

For anyone doing .NET, check out BCrypt.NET http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and-mono.ashx

0
जोड़ा

यदि आप अपने लॉगिन सिस्टम के लिए एन्क्रिप्शन विधि चुन रहे हैं तो गति आपके मित्र नहीं है, जेफ को थॉमस पटेसेक के साथ पासवर्ड और निष्कर्ष था कि आपको सबसे धीमे उपयोग करना चाहिए , सबसे सुरक्षित एन्क्रिप्शन विधि जो आप कर सकते हैं।

थॉमस Ptacek के ब्लॉग से:
  स्पीड वही है जो आप पासवर्ड हैश फ़ंक्शन में नहीं चाहते हैं।

     

आधुनिक पासवर्ड योजनाओं को वृद्धिशील पासवर्ड क्रैकर्स के साथ हमला किया जाता है।

     

वृद्धिशील क्रैकर्स सभी संभावित क्रैक किए गए पासवर्ड को पूर्ववत नहीं करते हैं। वे व्यक्तिगत रूप से प्रत्येक पासवर्ड हैश पर विचार करते हैं, और वे अपने PHP लॉगिन पेज के समान पासवर्ड हैश फ़ंक्शन के माध्यम से अपना शब्दकोश खिलाते हैं। इंद्रधनुष जैसे इंद्रधनुष तालिका क्रैकर्स पासवर्ड पर हमला करने के लिए अंतरिक्ष का उपयोग करते हैं; जॉन द रिपर, क्रैक, और एलसी 5 जैसे बढ़ते क्रैकर्स समय के साथ काम करते हैं: आंकड़े और गणना।

     

पासवर्ड एक्स हमला करने के लिए पासवर्ड समय पर स्कोर किया जाता है। इंद्रधनुष सारणी के साथ, उस समय इस बात पर निर्भर करता है कि आपकी तालिका कितनी बड़ी होनी चाहिए और आप इसे कितनी तेज़ी से खोज सकते हैं। वृद्धिशील क्रैकर्स के साथ, यह समय इस बात पर निर्भर करता है कि आप पासवर्ड हैश फ़ंक्शन कैसे चला सकते हैं।

     

बेहतर आप अपने पासवर्ड हैश फ़ंक्शन को अनुकूलित कर सकते हैं, तेज़ी से आपका पासवर्ड हैश फ़ंक्शन हो जाता है, आपकी योजना कमजोर होती है। एमडी 5 और एसएचए 1, डीईएस जैसे पारंपरिक ब्लॉक सिफर भी तेजी से डिजाइन किए गए हैं। एमडी 5, एसएचए 1, और डीईएस कमजोर पासवर्ड हैश हैं। आधुनिक सीपीयू पर, डीईएस और एमडी 5 जैसे कच्चे क्रिप्टो बिल्डिंग ब्लॉक को बिट्सस्लाइज्ड, वेक्टरिज्ड और समांतर किया जा सकता है ताकि पासवर्ड खोज बिजली तेज हो सके। गेम-ओवर एफपीजीए कार्यान्वयन केवल सैकड़ों डॉलर खर्च करते हैं।

0
जोड़ा

bcrypt का उपयोग करने पर विचार करें, यह लार्वेल जैसे कई आधुनिक ढांचे में उपयोग किया जाता है।

0
जोड़ा

आप जो भी करते हैं, अपना स्वयं का एन्क्रिप्शन एल्गोरिदम नहीं लिखें। ऐसा करने से लगभग गारंटी मिलेगी (जब तक आप एक क्रिप्टोग्राफर नहीं होते) कि एल्गोरिदम में कोई दोष होगा जो क्रैक करने के लिए तुच्छ हो जाएगा।

0
जोड़ा
यहां तक ​​कि यदि आप एक क्रिप्टोग्राफर हैं तो शायद इसमें कोई दोष होगा - एल्गोरिदम 'लोकप्रिय' होने से पहले समीक्षाओं में वर्षों लगते हैं
जोड़ा लेखक Tom Ritter, स्रोत
ये बिल्कुल सही है। और मुझे डॉन नूथ से इसी तरह की उपेक्षा की याद दिलाता है: बहुत समय पहले उसने यादृच्छिक संख्या जनरेटर लिखने की कोशिश की और कई अस्पष्ट परिचालनों को एक साथ ढेर कर दिया क्योंकि वह सोच सकता था। आखिर में उन्होंने इस विशाल रचना को भाग लिया और यह अनिश्चित काल तक संख्या 4 का उत्पादन किया। (विवरण को रीटेलिंग में बदल दिया गया हो सकता है।)
जोड़ा लेखक ndkrempel, स्रोत