HarmonyOS 鸿蒙Next 如何针对服务端下发的RSA公钥字符串进行转换,生成加密所需的密钥对(keyPair)

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

HarmonyOS 鸿蒙Next 如何针对服务端下发的RSA公钥字符串进行转换,生成加密所需的密钥对(keyPair)

服务端下发RSA公钥(字符串),前端需要对明文数据进行加密,如何对这个公钥进行转换?
官方文档上写着:
当前convertKey操作,公钥只支持转换满足X.509规范的DER格式。
但是如何进行转换,请问有无相应的指导?

1 回复

在HarmonyOS鸿蒙Next中,针对服务端下发的RSA公钥字符串进行转换,并生成加密所需的密钥对(keyPair),可以按照以下步骤操作:

  1. 接收并解码公钥字符串

    • 服务端下发的RSA公钥字符串通常为Base64编码。
    • 使用Base64解码工具(如HarmonyOS的Base64Helper)将字符串解码为字节数组。
  2. 转换字节数组为DataBlob类型

    • 将解码后的字节数组包装为HarmonyOS的DataBlob类型。
  3. 使用cryptoFramework API生成密钥对

    • 创建AsyKeyGenerator实例。
    • 调用convertKey方法,将DataBlob类型的公钥转换为KeyPair对象。
  4. 使用生成的密钥对进行加密

    • 创建Cipher对象,并初始化为加密模式。
    • 使用KeyPair中的公钥进行加密操作。

示例代码如下:

let base64Helper = new util.Base64Helper();
let pubKeyStr = "服务端下发的RSA公钥字符串";
let pubKeyBlob = { data: base64Helper.decodeSync(pubKeyStr) };
let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
let keyPair = await asyKeyGenerator.convertKey(pubKeyBlob, null);
// 接下来可以使用keyPair.pubKey进行加密操作

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

回到顶部