HarmonyOS 鸿蒙Next 使用crypto进行秘钥交换

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

HarmonyOS 鸿蒙Next 使用crypto进行秘钥交换

1、使用api获取到ecc公钥是Uint8Array格式,如何获取对应字符串,获取到的字符串是否为非压缩格式,可以拼上04开头?
2、对于获取ecc中钥匙串中各个属性不是很明白,咨询下这个api获取到的是什么值
let eccGenerator = cryptoFramework.createAsyKeyGenerator(“ECC256”);
let keyPair = await eccGenerator.generateKeyPair();
let p = keyPair.pubKey.getAsyKeySpec(cryptoFramework.AsyKeySpecItem.ECC_FP_P_BN);

通过pubKey.getAsyKeySpec拿到的p是公钥对应的字符串吗?

 


更多关于HarmonyOS 鸿蒙Next 使用crypto进行秘钥交换的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
如何获取对应字符串 需要使用 base64.encodeToStringSync() 将uint8array的格式转换成string

你咨询的p 并不是公钥的字符串 公钥是keyPair.pubKey 而keyPair.pubKey.getAsyKeySpec(cryptoFramework.AsyKeySpecItem.ECC_FP_P_BN);

是公钥的fp_p_bn的属性 具体请参考 ecc公钥api:【 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-cryptoframework#genecccommonparamsspec11

更多关于HarmonyOS 鸿蒙Next 使用crypto进行秘钥交换的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,使用crypto模块进行秘钥交换通常涉及非对称加密算法,如RSA、ECC等。这些算法允许两个通信方在不安全的通道上安全地交换密钥,进而用于后续的对称加密通信。

具体实现时,你需要先生成或加载双方的公钥和私钥对。对于ECC(椭圆曲线加密)算法,这通常包括一个私钥和一个对应的公钥。然后,利用crypto模块提供的API,一方可以使用自己的私钥和对方的公钥来生成一个共享的秘密(即会话密钥)。这个过程通常称为ECDH(椭圆曲线Diffie-Hellman)密钥交换。

在HarmonyOS中,crypto模块可能提供了封装好的接口来执行这些操作,包括密钥对的生成、公钥的导入/导出以及ECDH密钥交换的执行。你需要查阅HarmonyOS的官方文档或API参考,找到具体的函数和用法。

例如,你可能需要调用类似crypto_ecdh_key_exchange的函数,传入双方的公钥和私钥,然后获取生成的共享秘密。之后,这个共享秘密可以作为对称加密算法的密钥,用于后续的加密通信。

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

回到顶部