因此,我在Node.js中安装了node-rsa软件包并生成了RSA密钥(如下所示),并以“ pkcs8”标准将其保存到.txt文件中。
import warnings
warnings.simplefilter(action='ignore', category=YourWarningCategory)
然后(在另一种方法中),我从.txt文件中读取RSA密钥,并加密了'plaintext.txt'(一切正常)。
// Generate RSA key and export it in 'pkcs8' standard
var RSAkey = new NodeRSA({b: 512});
RSAkeyData = RSAkey.exportKey('pkcs8-public-pem');
// Write RSA key to file
fs.writeFile("input-output/RSA_private_key.txt", RSAkeyData, function(err, file) {
if (err)
console.log("Error: ", err);
else
console.log("RSA key has been generated!");
});
类似地,我尝试从.txt文件中读取我的RSA密钥并解密先前加密的.txt文件,并收到错误消息:“解密期间出错(可能是错误的密钥)。原始错误:错误:数据或密钥错误”
// Create new empty RSAkey and import saved key from RSAkeyDAta
var RSAkey = new NodeRSA();
RSAkeyData = fs.readFileSync("input-output/RSA_private_key.txt", 'utf8');
RSAkey.importKey(RSAkeyData, 'pkcs8-public-pem');
// Encrypt input data and write to file
var encryptedInput = RSAkey.encrypt(inputData, 'hex', 'utf8');
fs.writeFile("input-output/RSA_encrypted_" + filename, encryptedInput, function(err, file) {
if (err)
console.log("Error:", err);
else
console.log("File successfully encrypted with RSA!");
});
我不知道这里是什么问题,因为我以加密输入文件的相同方式解密了输入文件,但该文件无法正常工作。我尝试在其他帖子(stackoverflow,github)中找到解决方案,但未能解决我的问题。我还尝试了其他加密方案组合(pkcs1,私有等),但问题仍然存在。