NodeJS-使用公共​​密钥加密文件-数据太大而无法使用密钥

时间:2020-06-15 12:37:36

标签: node.js encryption cryptography rsa public-key-encryption

我想使用以下版本来加密相​​当大的压缩文件(〜10 MB)。 (这是在Mac上;最终将移植到Ubuntu计算机上。)

const fs = require('fs')
const { constants, publicEncrypt, generateKeyPairSync } = require('crypto');
const { publicKey, privateKey } = generateKeyPairSync('rsa', {
  modulusLength: 2048,
  publicKeyEncoding: {
    type: 'pkcs1',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs8',
    format: 'pem'
  }
});

let encBuffer = publicEncrypt({key: publicKey, padding: constants.RSA_NO_PADDING}, fs.readFileSync('random.txt'))
fs.writeFileSync('random.txt.enc', encBuffer)

我不断收到错误消息Error: error:0406B06E:rsa routines:RSA_padding_add_none:data too large for key size。甚至在按照另一个SO question所述使用crypto.constants.NO_PADDING之后。

如何解决此错误?

0 个答案:

没有答案