node.js NodeJS: bcrypt बनाम देशी क्रिप्टो




cryptography (3)

@ माइक-स्कॉट के जवाब के साथ, आपको पासवर्ड से संबंधित सामान के लिए bcrypt पसंद करना चाहिए, लेकिन फिर भी आप बेतरतीब टोकन या HMAC चेकसम या SHA1 / MD5 bcrypt जैसे कार्यों की एक विस्तृत श्रृंखला के लिए crypto उपयोग कर सकते हैं:

var crypto = require('crypto'); 

// random tokens
var buf = crypto.randomBytes(16).toString('hex');
console.log('Random token of %d bytes in hexadecimal: %s', buf.length, buf);
var buf = crypto.randomBytes(16).toString('base64');
console.log('Random token of %d bytes in base 64: %s', buf.length, buf);

// a hashed message authentication checksum (HMAC) using a shared secret key
var string = 'My coffee please';
var key = 'Right away sir';

var encrypted = crypto.createHmac('sha1', key).update(string).digest('hex');
console.log('Encrypting "%s" using passphrase "%s": %s', string, key, encrypted);

// a MD5 hash
var hashmd5 = crypto.createHash('md5').update(string).digest('hex');
console.log('The MD5 hash of "%s" is %s', string, hashmd5); 

// a SHA1 hash
var hashsha1 = crypto.createHash('sha1').update(string).digest('hex');
console.log('The SHA1 hash of "%s" is %s', string, hashsha1); 

क्या कोई दो और उदाहरण स्थितियों के बीच अंतर को इंगित कर सकता है जहां प्रत्येक का उपयोग किया जाता है?

bcrypt बहुत अच्छा लग रहा है।


जहाँ आप धीमी गति से और कम्प्यूटेशनल रूप से महंगे हैशिंग करना चाहते हैं, वहाँ bcrypt का उपयोग करें - यह आम तौर पर हैश के लिए होगा जहाँ आप वास्तव में हमलावर को हैश, जैसे उपयोगकर्ता पासवर्ड को उलटने में सक्षम नहीं होना चाहते हैं। बाकी सभी चीजों के लिए देशी क्रिप्टो का उपयोग करें।


मैं नोडज की मूल क्रिप्टो लाइब्रेरी का उपयोग करूंगा

मुझे लगता है कि निर्णय सिर्फ इस आधार पर नहीं होना चाहिए कि कौन क्या बेहतर करता है, यह उससे कहीं अधिक है

आपको पता होना चाहिए कि नोड.जेएस में क्रिप्टो के लिए एक इनबिल्ट मॉड्यूल क्यों शामिल है, जबकि यह मूल रूप से नोड का हिस्सा नहीं था। जेपी और कई लाइब्रेरी npm रिपॉजिटरी में लोकप्रिय थे, जिसमें bcrypt भी शामिल था।

कारण था, क्रिप्टोग्राफी एक महत्वपूर्ण सुरक्षा पहलू है, एनपीएम से बाहरी मॉड्यूल का उपयोग करने से दुर्भावनापूर्ण कोड इंजेक्ट होने की संभावना है, जो मूल सुरक्षा उद्देश्य को हरा देता है

इसलिए ऐसे क्रिप्टोग्राफिक फ़ंक्शन के लिए एक विश्वसनीय लाइब्रेरी की आवश्यकता होती है, जो इस तरह की लाइब्रेरी प्रदान करने के लिए नोडज के लिए प्रेरणा थी

यदि आपको लगता है कि क्रिप्टोग्राफिक विधि मजबूत नहीं है, तो बाहरी लाइब्रेरी पर आंख बंद करके भरोसा करने के बजाय नोडज पर बेहतर मुद्दा उठाएं।

फिर भी मुझे विश्वास नहीं है? इस लेख को पढ़ें https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5







bcrypt