HarmonyOS 鸿蒙Next RSA加解密报错,无法通过
HarmonyOS 鸿蒙Next RSA加解密报错,无法通过 在API12中使用RSA获取公钥的过程中报错,目前项目无法继续进行。
此处是我封装的代码。
let encryptKey: string |null = await RsaEncryptUtil.encryptByPublicKey(randomKey)
当调用此代码的时候出现如下错误:
06-25 15:52:36.328 29473-29473 C02f0a/HCF com.sinosig.khapp E OnSetParameter[143]: Invalid cipher params
06-25 15:52:36.328 29473-29473 C02f0a/HCF com.sinosig.khapp E HcfCipherCreate[353]: ParseAndSetParameter failed!
06-25 15:52:36.328 29473-29473 C02f0a/HCF com.sinosig.khapp E CreateCipher[809]: create C cipher fail!
06-25 15:52:36.328 29473-29473 A03d00/JSAPP com.sinosig.khapp E createX509Cert failed, errCode: 801, errMsg: create C cipher fail!
目前没有办法解决,麻烦帮忙看一下。
更多关于HarmonyOS 鸿蒙Next RSA加解密报错,无法通过的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据报错信息,createCipher()时报错。参数格式存在问题 let cipher = cryptoFramework.createCipher('RSA1024|PKCS1')
。修改下‘|’符号格式
运行压缩包demo点击登录报错为 ‘input string contains unsupported characters’。genIvParamsSpec()
方法中let dataIv = new util.Base64Helper().decodeSync("A-16-Byte-String")
语句报错。
可将’A-16-Byte-String’字符串转为Uint8Array后再转为DataBlob 类型
function genIvParamsSpec() {
let ivParamsSpec: cryptoFramework.IvParamsSpec
// let dataIv = new util.Base64Helper().decodeSync("A-16-Byte-String");
let ivBlob: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from('A-16-Byte-String', 'utf-8').buffer) };
ivParamsSpec = {
algName: "IvParamsSpec",
iv: ivBlob
};
return ivParamsSpec;
}
更多关于HarmonyOS 鸿蒙Next RSA加解密报错,无法通过的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对“HarmonyOS 鸿蒙Next RSA加解密报错,无法通过”的问题,可能的原因及解决方案如下:
-
密钥不匹配:
- 确保加密和解密使用的公钥和私钥对是匹配的。
- 检查密钥的格式和编码是否正确,如PKCS#1或PKCS#8等。
-
填充模式不一致:
- RSA加密通常涉及填充模式,如PKCS#1填充、OAEP填充等。
- 确保加密和解密时使用的填充模式相同。
-
数据长度问题:
- RSA加密的数据长度不能超过密钥长度减去 填充 所需的字节数。
- 按照HarmonyOS4的API或算法实现库检查加或解密的数据长度是否超过确认限制。
-
API 或算法实现库问题:
- 检查是否所有相关的库和依赖都已正确安装和配置。
- 尝试在不同的环境或设备上重现问题,以排除特定环境的问题。
如果以上步骤均无法解决问题,可能是HarmonyOS的RSA实现存在特定的限制或问题。此时,建议直接联系HarmonyOS的官方技术支持或访问官网获取更多帮助。
如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html,