HarmonyOS 鸿蒙Next中为什么指定二进制数据转换HMAC密钥得到的密钥为空

HarmonyOS 鸿蒙Next中为什么指定二进制数据转换HMAC密钥得到的密钥为空 跑了一下这个官方文档上面的示例代码,前面编码是没问题的,调库跑出来这个key是空的,感觉很费解,附上文档链接

image.png

image.png

image.png


更多关于HarmonyOS 鸿蒙Next中为什么指定二进制数据转换HMAC密钥得到的密钥为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

我这跑能正常显示key,你用手机试试

更多关于HarmonyOS 鸿蒙Next中为什么指定二进制数据转换HMAC密钥得到的密钥为空的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我在模拟器上运行的,会是这个问题吗,

诶不对说错了,我在preview跑的不行,用模拟器就可以了,很神奇,

看示例提供的二进制数据长度和 convertKey 异步方法也通过 await 处理异步流程了,应该不是这的问题。检查下 DataBlob 对象是不是 Uint8Array 类型数据,别直接使用字符串?

在鸿蒙Next中,使用二进制数据转换HMAC密钥时得到空密钥通常是由于以下原因之一:

  1. 输入的二进制数据长度不符合HMAC算法的要求
  2. 使用的密钥生成算法参数配置不正确
  3. 二进制数据包含非法字符或格式

确保使用正确的密钥生成API,如cryptoFramework.createSymKeyGenerator(),并验证输入数据是否符合所选算法标准。检查密钥长度是否匹配HMAC要求(如SHA256需要最小32字节)。

根据您提供的截图和描述,在HarmonyOS Next中将二进制数据转换为HMAC密钥时出现空值的问题,可能有以下几个原因:

  1. 输入数据问题:
  • 检查传入的binaryData是否有效,确保不是空数组或无效数据
  • 确认binaryData的格式符合要求(如长度、编码等)
  1. 算法参数配置:
  • 检查cryptoFramework.createSymKeyGenerator()时指定的算法名称是否正确
  • 确保’HMAC|SHA256’这样的算法组合被支持
  1. 密钥生成过程:
  • 在调用convertKey()之前,建议先检查generator是否创建成功
  • 可以尝试添加错误处理回调,查看是否有异常抛出
  1. 环境问题:
  • 确认运行的HarmonyOS版本支持该API
  • 检查是否缺少必要的权限声明

建议先添加错误处理逻辑,打印出各步骤的状态信息,这有助于定位具体在哪一步出现了问题。

回到顶部