सत्र संग्रह करने के उद्देश्य से हैश उत्पन्न करने का सबसे अच्छा तरीका क्या है? मैं हल्के, पोर्टेबल समाधान की तलाश में हूं।यादृच्छिक हैश/स्ट्रिंग बनाने का सबसे अच्छा तरीका क्या है?
उत्तर
आप PHP के अंतर्निर्मित हैशिंग फ़ंक्शन, sha1
और md5
का उपयोग कर सकते हैं। दोनों को चुनें, दोनों नहीं।
कोई ऐसा सोच सकता है कि sha1(md5($pass))
दोनों का उपयोग समाधान होगा। दोनों का उपयोग करने से आपका पासवर्ड अधिक सुरक्षित नहीं होता है, इसका अनावश्यक डेटा होता है और इससे ज्यादा समझ नहीं आती है।
PHP Security Consortium: Password Hashing पर एक नज़र डालें, वे कमजोरियों के साथ एक अच्छा लेख देते हैं और हैशिंग के साथ सुरक्षा में सुधार करते हैं।
Nonce "n के लिए खड़ा है एक बार"। इन्हें अनधिकृत पहुंच को रोकने के अनुरोधों पर उपयोग किया जाता है, वे गुप्त कुंजी भेजते हैं और प्रत्येक बार आपके कोड का उपयोग होने पर कुंजी की जांच करते हैं।
आपको कम से अधिक PHP NONCE Library from FullThrottle Development
की जांच कर सकते मैं व्यक्तिगत रूप से मेरे सत्र स्टोर करने के लिए एक यादृच्छिक अद्वितीय संख्या उत्पन्न करने के लिए अपाचे के mod_unique_id का उपयोग करें। इसका उपयोग करना वास्तव में आसान है (यदि आप अपाचे का उपयोग करते हैं)।
गैर-यहां देखने के लिए http://en.wikipedia.org/wiki/Cryptographic_nonce यहां एक PHP लाइब्रेरी का लिंक भी है।
शायद uniqid() क्या आपको चाहिए?
अभी, मैं uniqid() का उपयोग कर रहा हूं लेकिन मैंने पढ़ा है कि एक uniqid() पर md5 का उपयोग करना अच्छा नहीं है। –
आप एमडी 5 का उपयोग क्यों करना चाहते हैं? बस uniqid का उपयोग करें। –
मैं आम तौर पर मैन्युअल रूप से न सत्र आईडी का प्रबंधन। मैंने कुछ पंक्तियों को पहले मिश्रण करने के लिए अनुशंसित इन पंक्तियों के साथ कुछ देखा है, मैंने कभी भी खुद का उपयोग नहीं किया है, इसलिए मैं इसे डिफ़ॉल्ट से बेहतर या बदतर होने की पुष्टि नहीं कर सकता (नोट यह मैन्युअल प्रबंधन के साथ ऑटोजन के साथ उपयोग के लिए है)।
//md5 "emulation" using sha1
ini_set('session.hash_function', 1);
ini_set('session.hash_bits_per_character', 5);
मैं निर्मित PHP सत्र कार्यों का उपयोग नहीं करता क्योंकि मेरे पास उनके ऊपर अधिक नियंत्रण नहीं है और शायद असुरक्षित है। –
मैं आपको आश्वस्त कर सकता हूं कि वे किसी भी फ़ंक्शन से अधिक सुरक्षित हैं जो आपको लगता है कि सुरक्षित है :) –
bin2hex(mcrypt_create_iv(22, MCRYPT_DEV_URANDOM));
- mcrypt_create_iv आप बाइट्स की एक यादृच्छिक अनुक्रम दे देंगे। मन में
d2c63a605ae27c13e43e26fe2c97a36c4556846dd3ef
नंगे कि "सर्वश्रेष्ठ" एक रिश्तेदार शब्द है:
- bin2hex
उदाहरण आउटपुट ASCII पाठ करने के लिए इसे परिवर्तित कर देंगे। सुरक्षा, विशिष्टता और गति के बीच आपके पास व्यापार करने का एक व्यापार है। उपर्युक्त उदाहरण 99% मामलों के लिए अच्छा है, हालांकि यदि आप विशेष रूप से संवेदनशील डेटा से निपट रहे हैं, तो आप difference between MCRYPT_DEV_URANDOM and MCRYPT_DEV_RANDOM के बारे में पढ़ना चाहेंगे।
अंत में, RandomLib "यादृच्छिक संख्याएं और विभिन्न शक्तियों के तार उत्पन्न करने के लिए" है।
सूचना है कि अब तक मैं मान लिया है कि आप के लिए देख रहे एक यादृच्छिक स्ट्रिंग, जो एक ही नहीं है एक मूल्य से एक हैश पाने के रूप में उत्पन्न करते हैं। बाद के लिए, password_hash देखें।
बस थोड़ा सा पीएसए: 'mcrypt_create_iv' PHP 7.1.0 में बहिष्कृत किया गया था। इसके बजाय ['random_bytes'] (http://uk1.php.net/manual/en/function.random-bytes.php) का उपयोग करें। –
अलग-अलग लोगों के पास अलग-अलग best
तरीके होंगे।
- डाउनलोड इस
rand-hash.php
फ़ाइल: http://bit.ly/random-string-generator include()
यह PHP स्क्रिप्ट है कि आप के साथ काम कर रहे हैं लेकिन यह मेरा तरीका है। फिर, बसcc_rand()
फ़ंक्शन पर कॉल करें। डिफ़ॉल्ट रूप से यह 6 वर्ण लंबे यादृच्छिक स्ट्रिंग को वापस कर देगा जिसमेंa-z, A-Z,
और0-9
शामिल हो सकते हैं। आपlength
पास कर सकते हैं यह निर्दिष्ट करने के लिए किcc_rand()
कितने वर्ण वापस आना चाहिए।
उदाहरण:
cc_rand()
की तरह कुछ वापस आ जाएगी:4M8iro
cc_rand(15)
यह करने के लिए कुछ इसी तरह वापस आ जाएगी:S4cDK0L34hRIqAS
चीयर्स!
यह क्रिप्टोग्राफ़िक रूप से सुरक्षित मान उत्पन्न नहीं करता है क्योंकि यह ['rand()'] (https://secure.php.net/manual/en/function.rand.php) का उपयोग करता है। – 0b10011
आप openssl_random_pseudo_bytes का उपयोग php 5.3.0 के बाद बाइट्स की एक छद्म यादृच्छिक स्ट्रिंग उत्पन्न करने के लिए कर सकते हैं। आप इस सुविधा का उपयोग और स्ट्रिंग के लिए किसी तरह से परिवर्तित इन तरीकों में से एक का उपयोग कर सकते हैं:, संख्या, लोअरकेस, अपरकेस और साथ
$bytes = openssl_random_pseudo_bytes(32);
$hash = base64_encode($bytes);
या
$bytes = openssl_random_pseudo_bytes(32);
$hash = bin2hex($bytes);
पहले एक कम से कम स्ट्रिंग उत्पन्न होगा कुछ विशेष पात्र (=, +, /)। दूसरा विकल्प हेक्साडेसिमल संख्याओं (0-9, वायुसेना) उत्पन्न होगा
random_bytes()
पीएचपी 7.0 के रूप में उपलब्ध है (या this polyfill for 5.2 through 5.6):
$hash = bin2hex(random_bytes(16));
echo serialize($hash);
आउटपुट:
रों: 32: "c8b2ca837488ff779753f374545b603c";
अगर यह उपलब्ध है तो random_bytes() का उपयोग करें!
$length = 32;
if (function_exists("random_bytes")) {
$bytes = random_bytes(ceil($lenght/2));
$token = substr(bin2hex($bytes), 0, $lenght)
}
- 1. जोइस लुकअप बनाने का सबसे अच्छा तरीका क्या है?
- 2. एक जटिल NSCompoundPredicate बनाने का सबसे अच्छा तरीका क्या है?
- 3. जेएसपी लेआउट टेम्पलेट बनाने का सबसे अच्छा तरीका क्या है?
- 4. इंटरैक्टिव एप्लिकेशन प्रोटोटाइप बनाने का सबसे अच्छा तरीका क्या है?
- 5. वेब पेज थंबनेल बनाने का सबसे अच्छा तरीका क्या है?
- 6. PHP लॉगिन पृष्ठ बनाने का सबसे अच्छा तरीका क्या है?
- 7. मोबाइल अनुकूल साइट बनाने का सबसे अच्छा तरीका क्या है?
- 8. इंकस्केप में तीर बनाने का सबसे अच्छा तरीका क्या है?
- 9. एप्लिकेशन आइकन बनाने का सबसे अच्छा तरीका
- 10. सरणीसूची का हैशैप बनाने का सबसे अच्छा तरीका
- 11. स्वचालित बैकअप बनाने का सबसे अच्छा तरीका कौन सा है?
- 12. सबसे अच्छा तरीका है
- 13. सबसे अच्छा तरीका है
- 14. सबसे अच्छा तरीका है
- 15. सबसे अच्छा तरीका है?
- 16. सबसे अच्छा तरीका है
- 17. एनएसएमयूटेबलएरे को शफल करने का सबसे अच्छा तरीका क्या है?
- 18. सबसे अच्छा तरीका है
- 19. सेगमेंट प्रोग्रेस बार बनाने का सबसे अच्छा तरीका?
- 20. सबसे अच्छा तरीका है
- 21. सबसे अच्छा तरीका है
- 22. जावास्क्रिप्ट में क्लास गेटर/सेटर्स बनाने का सबसे अच्छा तरीका?
- 23. SQL सर्वर रोलबैक स्क्रिप्ट बनाने का सबसे अच्छा तरीका?
- 24. UIButtons के 10x10 ग्रिड बनाने का सबसे अच्छा तरीका?
- 25. लिनक्स वेब सेवाओं को बनाने का सबसे अच्छा तरीका?
- 26. ट्विटर बूटस्ट्रैप टैब को लगातार बनाने का सबसे अच्छा तरीका
- 27. रेल में एकाधिक फ़िल्टर बनाने का सबसे अच्छा तरीका
- 28. कोडइग्निटर में व्यवस्थापक पेज बनाने का सबसे अच्छा तरीका?
- 29. ओरेकल में हिस्टोग्राम/आवृत्ति वितरण बनाने का सबसे अच्छा तरीका?
- 30. मॉडल खोज फ़ॉर्म बनाने का सबसे अच्छा तरीका?
धन्यवाद। मैं इसे देखने के लिए जा रहा हूं –
md5 हैक किया गया है, sha1 –
SHA1 का उपयोग भी किया जा सकता है (कम से कम सैद्धांतिक रूप से)। विवरण के लिए [हैश फ़ंक्शन सुरक्षा सारांश] (https://en.wikipedia.org/wiki/Hash_function_security_summary) देखें। मैं SHA256 या SHA512 के साथ जाऊंगा। – colan