2011-08-05 15 views
39

हम पासवर्ड और डेटा के लिए bcrypt का उपयोग कर रहे हैं जिसे कभी डिक्रिप्ट करने की आवश्यकता नहीं है।node.js: डेटा एन्क्रिप्ट करना जिसे डिक्रिप्ट करने की आवश्यकता है?

अन्य उपयोगकर्ता जानकारी की सुरक्षा के लिए क्या करना चाहिए। इस उदाहरण के लिए कहें कि हम चाहते हैं कि कोई उपयोगकर्ता वास्तविक नाम को सादा पाठ में न ले, अगर कोई डीबी प्राप्त करना चाहता था।

यह कुछ हद तक संवेदनशील डेटा है लेकिन समय-समय पर इसे सादे पाठ में भी प्रदर्शित किया जाना चाहिए। क्या ऐसा करने के लिए एक सरल तरीका है?

+4

स्थितियों में एक हमलावर अपने डेटाबेस प्राप्त कर सकते हैं, लेकिन नहीं एन्क्रिप्शन कुंजी आप भी डिस्क पर भंडारण कर रहे हैं अक्सर बहुत काल्पनिक हैं। क्या आप वाकई इस बारे में सोचा है? –

+24

इंटरनेट इतना स्मार्ट और सहायक है। यह बहुत अच्छा है जब लोग प्रश्न का उत्तर देने या वास्तविक मार्गदर्शन प्रदान करने के बजाय आपके दृष्टिकोण का अपमान करके अपनी बुद्धि का प्रदर्शन करना चुनते हैं। – Secesh

उत्तर

104

आप crypto मॉड्यूल का उपयोग कर सकते हैं:

var crypto = require('crypto'); 
var assert = require('assert'); 

var algorithm = 'aes256'; // or any other algorithm supported by OpenSSL 
var key = 'password'; 
var text = 'I love kittens'; 

var cipher = crypto.createCipher(algorithm, key); 
var encrypted = cipher.update(text, 'utf8', 'hex') + cipher.final('hex'); 
var decipher = crypto.createDecipher(algorithm, key); 
var decrypted = decipher.update(encrypted, 'hex', 'utf8') + decipher.final('utf8'); 

assert.equal(decrypted, text); 
+0

क्या आप इसे और अधिक सुरक्षित बनाने के लिए एक चतुर्थ जोड़ने की सलाह देंगे? यदि हां, तो यह 'क्रिप्टो' के साथ कैसे किया जाएगा? – Fizzix

संबंधित मुद्दे