如何使用node-rsa加密/解密此文件?

时间:2019-05-09 21:43:01

标签: javascript node.js encryption

我遵循的medium tutorial使用node-rsa(github api)进行加密,如下所示:

// write encrypted file
const encrypted = key.encrypt(file, 'base64');
fs.openSync('encrypted.txt', 'w');
fs.writeFileSync('encrypted.txt', encrypted, 'utf8');

我希望简单地解密为:

// read encrypted file
const fileEncrypted = fs.readFileSync('encrypted.txt', 'utf8');
const decrypted = key.decryptPublic(fileEncrypted, 'base64'); // errors

但出现错误:

  

错误:解密期间出错(可能是不正确的密钥)。原版的   错误:错误:错误:0407006A:rsa   例程:RSA_padding_check_PKCS1_type_1:块类型不是01

如果需要,请查看中级教程以获取完整代码。

我也尝试过这一行:

const decrypted = key.decrypt(fileEncrypted, 'base64'); // incorrect output

产生的输出:

dGVzdA==

1 个答案:

答案 0 :(得分:2)

您需要使用utf8进行解密,如下所示:

const decrypted = key.decrypt(fileEncrypted, 'utf8');