निम्नलिखित कोड काम करता है, लेकिन मैं एक पेशेवर क्रिप्टोग्राफर नहीं हूं, इसलिए यहां कुछ टिप्पणियां उपयोगी होंगी।
मैंने क्रिप्टो के बजाय ursa आरएसए मॉड्यूल का उपयोग किया है।
मुझे चिंता है कि यदि समान डेटा एईएस या इसी तरह के पास बिना सीधे एन्क्रिप्ट किया गया था, तो यह तोड़ना मुश्किल हो सकता है। कृपया टिप्पणियां ...
var ursa = require('ursa');
var fs = require('fs');
// create a pair of keys (a private key contains both keys...)
var keys = ursa.generatePrivateKey();
console.log('keys:', keys);
// reconstitute the private key from a base64 encoding
var privPem = keys.toPrivatePem('base64');
console.log('privPem:', privPem);
var priv = ursa.createPrivateKey(privPem, '', 'base64');
// make a public key, to be used for encryption
var pubPem = keys.toPublicPem('base64');
console.log('pubPem:', pubPem);
var pub = ursa.createPublicKey(pubPem, 'base64');
// encrypt, with the public key, then decrypt with the private
var data = new Buffer('hello world');
console.log('data:', data);
var enc = pub.encrypt(data);
console.log('enc:', enc);
var unenc = priv.decrypt(enc);
console.log('unenc:', unenc);
कुछ आगे की जांच पड़ताल http://en.wikipedia.org/w/index.php?title=RSA_%28cryptosystem%29§ion=12#Attacks_against_plain_RSA यह पहले से ही उर्सा की तरह लग रहा गद्दी करता है के बाद।
मुझे यकीन नहीं है कि आप उपयोगकर्ताओं को अपनी निजी कुंजी सुरक्षित रूप से कैसे दे रहे हैं। मैं बेहतर होगा अगर उन्होंने स्थानीय रूप से अपने कुंजी जोड़े उत्पन्न किए और आपको अपनी सार्वजनिक कुंजी दी। – Bruno
@ ब्रूनो हां, इसके बारे में कोई समस्या नहीं है ... मेरा लक्ष्य यह समझना है कि कैसे नोड.जेएस के साथ कुंजी (निजी, सार्वजनिक) की एक जोड़ी बनाना है, क्या यह संभव है? – Dail