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

2 回复

根据报错信息,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加解密报错,无法通过”的问题,可能的原因及解决方案如下:

  1. 密钥不匹配

    • 确保加密和解密使用的公钥和私钥对是匹配的。
    • 检查密钥的格式和编码是否正确,如PKCS#1或PKCS#8等。
  2. 填充模式不一致

    • RSA加密通常涉及填充模式,如PKCS#1填充、OAEP填充等。
    • 确保加密和解密时使用的填充模式相同。
  3. 数据长度问题

    • RSA加密的数据长度不能超过密钥长度减去 填充 所需的字节数。
    • 按照HarmonyOS4的API或算法实现库检查加或解密的数据长度是否超过确认限制。
  4. API 或算法实现库问题

    • 检查是否所有相关的库和依赖都已正确安装和配置。
    • 尝试在不同的环境或设备上重现问题,以排除特定环境的问题。

如果以上步骤均无法解决问题,可能是HarmonyOS的RSA实现存在特定的限制或问题。此时,建议直接联系HarmonyOS的官方技术支持或访问官网获取更多帮助。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部