HarmonyOS 鸿蒙Next RSA1024|NoPadding分段加密报错
HarmonyOS 鸿蒙Next RSA1024|NoPadding分段加密报错
在别处看着了一段RSA1024|NoPadding代码,结果运行报错,求大佬帮忙解答一下
错误日志:
HarmonyOS 鸿蒙Next RSA1024|NoPadding分段加密报错
在别处看着了一段RSA1024|NoPadding代码,结果运行报错,求大佬帮忙解答一下
错误日志:
文档中有关RSA说明:
因此如果不用Padding(PKCS1或PKCS1_OAEP)用户得自己保证数据长度符合上述要求,现实中不实用;所以,不是选个填充方式进行加密吧。
已经搞定了,用的NoPadding,分段加密时的填充长度为RSA的bits / 8 没有+7
上面的公式是官方文档给的,考虑到整数除法,+7与否是不影响结果的,毕竟RSA位长都是8的位数:)
private static stringToUint8Array(str: string) {
let arr: number[] = [];
for (let i = 0, j = str.length; i < j; ++i) {
arr.push(str.charCodeAt(i));
}
let tmpArray = new Uint8Array(arr);
return tmpArray;
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
针对HarmonyOS(鸿蒙)中使用RSA1024|NoPadding分段加密报错的问题,首先确认你的加密数据长度是否超过了RSA1024允许的最大明文长度(通常为117字节,具体取决于填充方式,但NoPadding时应接近此值)。由于NoPadding不使用填充,直接加密的数据长度必须严格符合模长的要求,否则会报错。
检查数据分段逻辑,确保每段数据长度合适,并在加密前进行必要的填充或截断处理。同时,确认使用的库或框架是否支持RSA1024和NoPadding组合。
如果问题依旧没法解决请加我微信,我的微信是itying888。