如何从十六进制编码的模数创建一个RSA密钥,并在node.js中进行加密 [英] How to create an RSA key from hex-encoded modulus and encrypt in node.js

查看:356
本文介绍了如何从十六进制编码的模数创建一个RSA密钥,并在node.js中进行加密的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在找到在node.js中RSA加密的方法,我想处理大数字,所以我使用这个:

解决方案

您应该能够以这种方式从模数和公共指数加载RSA公钥:

 code> var rsa = require(node-bignumber); 

VAR N = ad6eb61316ff805e9c94667ab04aa45aa3203eef71ba8c12afb353a5c7f11657e43f5ce4483d4e6eca46af6b3bde4981499014730d3b233420bf3ecd3287a2768da8bd401f0abd7a5a137d700f0c9d0574ef7ba91328e9a6b055820d03c98d56943139075d;
var e =010001;
var pub = new rsa.Key();
pub.setPublic(n,e);

var message =Message;
var encrypted = pub.encrypt(message);

console.log(加密);

RSA中的公钥包含模数和公共指数,因为加密期间需要两个值。


I'm finding the way to RSA encryption in node.js, I want to handle big numbers, so I use this: https://github.com/eschnou/node-bignumber

What I'm going to do is just encryption, with modulus and exponent. I don't have to do decryption. anyway, I got an error on and on, but I don't know what's wrong. Can anyone know what it is wrong? Thanks.

Code

require("node-bignumber");
var nvalue="ad6eb61316ff805e9c94667ab04aa45aa3203eef71ba8c12afb353a5c7f11657e43f5ce4483d4e6eca46af6b3bde4981499014730d3b233420bf3ecd3287a2768da8bd401f0abd7a5a137d700f0c9d0574ef7ba91328e9a6b055820d03c98d56943139075d";
var evalue="010001";
var encpw="";
var rsa = new RSAKey;

function encryptMessage() {
    var message = "All your bases are belong to us.";
    rsa.setPublic(evalue, nvalue);
    encpw.value = rsa.encrypt(message);
    console.log(encpw);
}

encryptMessage();

Error

ReferenceError: RSAKey is not defined
    at Object.<anonymous> (c:\Users\win\Desktop\untitled\juntae.js:5:15)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3

解决方案

You should be able to load an RSA public key from modulus and public exponent in this way:

var rsa = require("node-bignumber");

var n = "ad6eb61316ff805e9c94667ab04aa45aa3203eef71ba8c12afb353a5c7f11657e43f5ce4483d4e6eca46af6b3bde4981499014730d3b233420bf3ecd3287a2768da8bd401f0abd7a5a137d700f0c9d0574ef7ba91328e9a6b055820d03c98d56943139075d";
var e = "010001";
var pub = new rsa.Key();
pub.setPublic(n, e);

var message = "Message";
var encrypted = pub.encrypt(message);

console.log(encrypted);

The public key in RSA consists of the modulus and the public exponent, because both values are needed during encryption.

这篇关于如何从十六进制编码的模数创建一个RSA密钥,并在node.js中进行加密的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆