我遵循的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==
答案 0 :(得分:2)
您需要使用utf8进行解密,如下所示:
const decrypted = key.decrypt(fileEncrypted, 'utf8');