首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:错误:04099079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep解码错误

错误:错误:04099079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep解码错误
EN

Stack Overflow用户
提问于 2019-09-21 18:09:01
回答 1查看 899关注 0票数 3

我正在尝试解密使用crypto.publicEncrypt加密的消息,但我得到了以下错误:

代码语言:javascript
复制
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'));
EN

回答 1

Stack Overflow用户

发布于 2022-05-19 18:09:12

如果以这种方式生成KeyPairs:

代码语言:javascript
复制
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>'
      }
    });

然后,您需要通过这样做传递不填充:

代码语言:javascript
复制
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');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58042876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档