猿问

如何使用公钥加密并使用 Javascript(NodeJS 等)使用 Base64 进行编码

var NodeRSA = require('node-rsa');

var key = new NodeRSA();

var public= '-----BEGIN PUBLIC KEY-----'+publicKey+'-----END PUBLIC KEY-----';

const text = "hello";

key.importKey(public,"pkcs1");

var encrypted = key.encrypt(text, 'base64');

console.log(encrypted);

我正在尝试使用 node-rsa 加密文本,我正在尝试加密的文档说它必须使用 PKCS1-v1_5 方案在 RSA 中使用加密进行加密。我尝试使用这段代码并且它有效但是当我将加密消息发送到 API 时(我不能透露是哪个),它不接受它并显示此错误消息:


{"errors":[{"code":"rsaCryptService.decrypt.wrongKey","title":"Wrong public key.","detail":"The public key you are using is invalid. Please use the one we provided you."}]}

我用 Python 制作了一个替代版本并且可以使用,但我需要它才能使用 Javascript


使用 Django 或 Flask 是一个选项吗?


帮助 !!!:(


至尊宝的传说
浏览 160回答 1
1回答

狐的传说

let forge = require("node-forge");var pki = forge.pki;var pem = '-----BEGIN PUBLIC KEY-----\n'+key+'-----END PUBLIC KEY-----';// convert a PEM-formatted public key to a Forge public keyvar publicKey = pki.publicKeyFromPem(pem);var text = "message";const encrypted = publicKey.encrypt(text);console.log("encrypted:", forge.util.encode64(encrypted));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答