您好,如果加密的数据过长,可以使用eolink来分段解密,通过自定义函数功能来解决
参考示例如下:
自定义函数内容:
MAX_DECRYPT_BLOCK = input_max_decrypt_block || 128
function fn_decrypt(tmp_input_msg) {
return eo.rsaPublicDecrypt({
key: input_private_key,
padding: “RSA_PKCS1_PADDING”
}, tmp_input_msg, “base64”)
}
try {
var ct = “”;
var t1;
var buf = Buffer.from(input_msg, “base64”);
var inputLen = buf.length;
//开始长度
var offSet = 0;
//结束长度
var endOffSet = MAX_DECRYPT_BLOCK;
//分段解密
while (inputLen – offSet > 0) {
if (inputLen – offSet > MAX_DECRYPT_BLOCK) {
t1 = fn_decrypt(buf.slice(offSet, endOffSet));
ct += t1;
} else {
t1 = fn_decrypt(buf.slice(offSet, inputLen));
ct += t1;
}
offSet += MAX_DECRYPT_BLOCK;
endOffSet += MAX_DECRYPT_BLOCK;
}
return ct;
} catch (ex) {
return false;
}