我正在尝试解密使用crypto.publicEncrypt加密的消息,但我得到了以下错误:
internal/crypto/cipher.js:44
return method(toBuf(key), buffer, padding, passphrase);
^
Error: error:04099079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error
at Object.privateDecrypt (internal/crypto/cipher.js:44:12)
let enc = crypto.privateDecrypt({
key: privateKey,
padding: crypto.constants.RSA_PKCS1_OAEP_PADDING
}, Buffer.from(message, 'base64'));发布于 2022-05-19 18:09:12
如果以这种方式生成KeyPairs:
const keyPair = crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8', // or pkcs1
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: '<passPhrase>'
}
});然后,您需要通过这样做传递不填充:
crypto.privateDecrypt(
{
key: this.privateKey,
passphrase: '<passPhrase>',
padding: crypto.constants.RSA_NO_PADDING, // <-- You need to pass this to padding property
},
Buffer.from(encryptedText, 'base64')).toString('utf8');https://stackoverflow.com/questions/58042876
复制相似问题