我正在使用NodeJS Crypto模块在后端使用 RSA 进行加密和解密,并在前端 RSA使用JSencrypt
但问题是每当我在前端使用公钥加密时,我的后端都会抛出这个错误(PS:我在 NuxtJS 中使用它,所以使用导入函数。)
const { JSEncrypt } = await import('jsencrypt')
const rsa = new JSEncrypt({ default_key_size: 1024 })
rsa.setPublicKey(store.state.publicKey)
const xKey = rsa.encrypt(store.state.ticket)
然后每当我尝试在后端使用这段代码进行解码时,它都会抛出这个
Error: error:04099079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error
这是我使用 privateKey 进行 RSA 解码的后端代码
const privateKey = fs.readFileSync('RSA_private.key', { encoding: 'utf8' })
exports.RSAdecrypt = async (data) => {
const buffer = Buffer.from(data, "base64")
const decrypted = crypto.privateDecrypt(privateKey, buffer)
return decrypted.toString('utf8')
}