HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符

需求是使用 createMd 计算摘要,使用了官方文档中的 demo 代码。

  1. import { cryptoFramework } from ‘@kit.CryptoArchitectureKit’;
  2. import { buffer } from ‘@kit.ArkTS’;
  3. function doMdBySync() {
  4. let mdAlgName = ‘SHA256’; // 摘要算法名
  5. let message = ‘mdTestMessgae’; // 待摘要的数据
  6. let md = cryptoFramework.createMd(mdAlgName);
  7. // 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
  8. md.updateSync({ data: new Uint8Array(buffer.from(message, ‘utf-8’).buffer) });
  9. let mdResult = md.digestSync();
  10. console.info(’[Sync]:Md result:’ + mdResult.data);
  11. let mdLen = md.getMdLength();
  12. console.info("md len: " + mdLen);
  13. }

实际测试的时候发现 mdResult.data 并不是一个 Unit8Array 数据,而是一个 Unit8Array 构造函数。

这个 API 有问题吧,与文档描述的返回类型值不符啊。


更多关于HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

在JS中没有类的概念,类是用函数原型来实现的,所以两者从JS来看是一样的。

更多关于HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个 mdResult.data 在预览器模式下类型是一个 function,预期是一个 Uint8Array 类型,反复测试发现这个只有在模拟器中才运行正常,真坑人。

预览器本就是个精简版调试工具,主要以UI快速预览为主,这些加密啊、数据库什么的还是用模拟器相对可靠些。

话虽如此,但这运行结果太像 bug 而不是预览器的限制。

针对帖子标题“HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符”的问题,以下是我的回答:

在HarmonyOS鸿蒙系统中,当使用Next摘要创建功能时,Md.digest 方法返回的数据类型应当与官方文档描述一致。如果在实际使用中遇到返回数据类型与文档不符的情况,这可能是由于以下几个原因:

  1. API版本差异:确保你使用的HarmonyOS SDK版本与官方文档描述的版本一致。不同版本的SDK中,API的行为或返回类型可能有所不同。

  2. 文档错误:有可能是官方文档存在错误或更新不及时。这种情况下,建议查阅最新的官方文档或相关更新说明。

  3. 代码实现问题:检查你的代码实现,确保在调用Md.digest方法时,传递的参数和上下文环境符合API的要求。

  4. 系统Bug:如果以上都确认无误,可能是HarmonyOS系统本身存在的Bug。此时,可以尝试更新系统到最新版本,看问题是否得到解决。

如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。他们将为你提供更专业的帮助和支持。

回到顶部