我想使用以下版本来加密相当大的压缩文件(〜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
之后。
如何解决此错误?