मैं पासवर्ड + नमक पर SHA256
चलाने जा रहा हूं, लेकिन मुझे नहीं पता कि MySQL डेटाबेस सेट करते समय मुझे VARCHAR
बनाना कितना समय लगता है। अच्छी लंबाई क्या है?SHA256 हैश कितना समय है?
उत्तर
एक sha256 256 बिट लंबा है - जैसा कि इसका नाम इंगित करता है।
यदि आप हेक्साडेसिमल प्रतिनिधित्व का उपयोग कर रहे हैं, तो प्रत्येक बिट कोड 4 बिट्स के लिए कोड; इसलिए आपको 256 बिट्स का प्रतिनिधित्व करने के लिए 64 अंकों की आवश्यकता है - इसलिए, आपको varchar(64)
, या char(64)
की आवश्यकता है, क्योंकि लंबाई हमेशा समान होती है, बिल्कुल भिन्न नहीं होती है।
और डेमो:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
आप देंगे:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
अर्थात 64 पात्रों के साथ एक स्ट्रिंग।
क्या हम प्राथमिक कुंजी के रूप में char (64) का उपयोग कर सकते हैं या बाइनरी (32) इसके लिए बेहतर होगा? (access_token) – frankish
यदि आपको लगता है कि आप भविष्य में किसी उपयोगकर्ता को अवरुद्ध करना चाहते हैं, तो मैं केवल 'अग्रणी' के लिए 'वर्कर (65)' का उपयोग करने का सुझाव देता हूं ... बस कह रहा हूं। – Manatax
... या बस एक कॉलम 'अवरुद्ध' जोड़ें? –
आप इसे VARCHAR क्यों बनायेंगे? यह अलग नहीं है। यह हमेशा 64 वर्ण होता है, जिसे one of the online SHA-256 calculators में कुछ भी चलाकर निर्धारित किया जा सकता है।
यह 64 वर्ण तय किया जाएगा, ताकि का उपयोग char(64)
मैं द्विआधारी (32) का उपयोग करने के बाद से यह अनुकूलित रास्ता नहीं है पसंद करते हैं!
आप उस 32 हेक्स अंकों (00 से एफएफ) में रख सकते हैं।
इसलिए बिनरी (32)!
+1 - मुझे अनुकूलित किया गया है ... इस पर किसी और के लिए ... MySQL के साथ इसका उपयोग करने के लिए ... आप 'अद्यतन ... SET हैश_column = UNHEX (sha256HexString) का उपयोग कर सकते हैं।फिर, इसे पुनर्प्राप्त करते समय, आप 'हेक्स हैश (हैश_column) AS हैश_column' चुनें। –
SHA256 के 256 बिट्स के लिए एन्कोडिंग विकल्प:
- Base64: गद्दी चरित्र सहित चार =
CHAR(44)
प्रति 6 बिट - हेक्स: चार =
CHAR(64)
- बाइनरी प्रति 4 बिट्स: 8 बाइट प्रति बिट =
BINARY(32)
बेस 64 प्रति 4 वर्णों में 3 बाइट्स है, इसलिए 32 बाइट 43 वर्णों में फिट बैठते हैं, फिर भी आपको वास्तव में 44 की आवश्यकता होती है। एक अतिरिक्त = अंतिम वर्ण के रूप में जोड़ा जाता है – Wilco
कोई भी इसे पढ़ने से पहले इस सलाह का पालन करने और हैश पासवर्ड के लिए 'SHA- *' का उपयोग करने का निर्णय लेने से पहले, [कृपया इसे पहले पढ़ें] (https: //security.stackexchan ge.com/questions/16354/whats-the-advantage-of-using-pbkdf2-vs-sha256-to-generate-an-aes-encryption-key)। – c00000fd
उदाहरण के साथ एक विस्तृत ब्लॉग: http: //sforsuresh.in/mysql_varchar_max_length/ –