Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const NodeRSA = require('node-rsa');
- const fs = require('fs');
- var key;
- var generate = function () {
- key = new NodeRSA();
- key.generateKeyPair(2048, 65537);
- fs.writeFileSync('./keys/public-key.pem', key.exportKey('pkcs8-public-pem'));
- };
- var encrypt = function (message) {
- let encrypted = key.encrypt(message, 'base64');
- return encrypted;
- };
- var decrypt = function (cipherText) {
- let decrypted = key.decrypt(cipherText, 'utf8');
- return decrypted;
- }
- module.exports.generate = generate;
- module.exports.test = test;
- module.exports.encrypt = encrypt;
- module.exports.decrypt = decrypt;
- const express = require('express');
- const rsaWrapper = require('./components/rsa-wrapper.js');
- const app = express();
- const fs = require('fs');
- app.listen(3000);
- app.get('/', function(req, res) {
- console.log('Working');
- res.render('index.ejs');
- });
- app.get('/generate', function(req, res) {
- rsaWrapper.generate();
- console.log('The keys have been generated successfully.');
- res.render('index.ejs');
- });
- app.get('/decrypt', function(req, res) {
- fs.readFile('./cipher-text.txt', (err, data) => {
- if (err) throw err;
- console.log('The original message is:' + rsaWrapper.decrypt(data));
- });
- res.render('index.ejs');
- });
- static void Main(string[] args) {
- RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
- RSAParameters rsaParam = rsa.ExportParameters(false);
- String publicKey = File.ReadAllText(@"D:NodeProjectsTest projectkeyspublic-key.pem").Replace("-----BEGIN PUBLIC KEY-----", "").Replace("-----END PUBLIC KEY-----", "");
- publicKey = publicKey.Replace("n", String.Empty);
- publicKey = publicKey.Replace("r", String.Empty);
- publicKey = publicKey.Replace("t", String.Empty);
- rsaParam.Modulus = Convert.FromBase64String(publicKey);
- byte[] intBytes = BitConverter.GetBytes(65537);
- if (BitConverter.IsLittleEndian)
- Array.Reverse(intBytes);
- rsaParam.Exponent = intBytes;
- rsa.ImportParameters(rsaParam);
- string msg = ".";
- byte[] encrypted = rsa.Encrypt(Encoding.UTF8.GetBytes(msg), true);
- string cipherText = Convert.ToBase64String(encrypted);
- File.WriteAllText(@"D:NodeProjectsTest projectcipher-text.txt", cipherText);
- Console.WriteLine(publicKey);
- Console.WriteLine(cipherText);
- Console.ReadLine();
- }
- const rsaWrapper = {};
- const fs = require('fs');
- const NodeRSA = require('node-rsa');
- const crypto = require('crypto');
- // load keys from file
- rsaWrapper.initLoadServerKeys = () => {
- rsaWrapper.serverPub = fs.readFileSync('./keys/public-key.pem');
- rsaWrapper.serverPrivate = fs.readFileSync('./keys/private-key.pem');
- };
- rsaWrapper.generate = () => {
- let key = new NodeRSA();
- key.generateKeyPair(2048, 65537);
- fs.writeFileSync('./keys/private-key.pem', key.exportKey('pkcs8-private-pem'));
- fs.writeFileSync('./keys/public-key.pem', key.exportKey('pkcs8-public-pem'));
- return true;
- };
- rsaWrapper.serverExampleEncrypt = () => {
- console.log('Server public encrypting');
- let enc = rsaWrapper.encrypt(rsaWrapper.serverPub, 'Server init hello');
- console.log('Encrypted RSA string ', 'n', enc);
- let dec = rsaWrapper.decrypt(rsaWrapper.serverPrivate, enc);
- console.log('Decrypted RSA string ...');
- console.log(dec);
- };
- rsaWrapper.encrypt = (publicKey, message) => {
- let enc = crypto.publicEncrypt({
- key: publicKey,
- padding: crypto.RSA_PKCS1_OAEP_PADDING
- }, Buffer.from(message));
- return enc.toString('base64');
- };
- rsaWrapper.decrypt = (privateKey, message) => {
- let enc = crypto.privateDecrypt({
- key: privateKey,
- padding: crypto.RSA_PKCS1_OAEP_PADDING
- }, Buffer.from(message, 'base64'));
- return enc.toString();
- };
- module.exports = rsaWrapper;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement