HarmonyOS 鸿蒙Next RSA加密后得到DataBlob类如何转成base64字符串

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

HarmonyOS 鸿蒙Next RSA加密后得到DataBlob类如何转成base64字符串
<markdown _ngcontent-egy-c147="" class="markdownPreContainer">

RSA加密后得到DataBlob类如何转成base64字符串啊?

深色代码主题
复制
try {
  let publicPkcs1Str1024 = `-----BEGIN PUBLIC KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END PUBLIC KEY-----`;
  let cipher = cryptoFramework.createCipher('RSA1024|PKCS1');
  let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
  let keyPairData = asyKeyGenerator.convertPemKeySync(publicPkcs1Str1024, null);
  let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(text, 'utf-8').buffer) };
  cipher.initSync(cryptoFramework.CryptoMode.ENCRYPT_MODE, keyPairData.pubKey, null);
  let encryptData = cipher.doFinalSync(plainText);
  console.log(`RSA加密成功:-----${encryptData.data}`);
  return encryptData;
} catch (err) {
  console.log(`RSA加密出错:-----${err}`);
  return text;
}
</markdown>

更多关于HarmonyOS 鸿蒙Next RSA加密后得到DataBlob类如何转成base64字符串的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
Uint8Array转base64字符串:可以通过Base64Helper工具类的encodeToStringSync方法进行转换
new util.Base64Helper().encodeToStringSync(encryptData.data);
api文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-util-V5#encodetostringsync9

更多关于HarmonyOS 鸿蒙Next RSA加密后得到DataBlob类如何转成base64字符串的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,将RSA加密后得到的DataBlob类转换为Base64字符串,可以通过以下步骤实现:

  1. 获取DataBlob数据:首先确保你已经通过RSA加密得到了一个DataBlob对象,该对象包含了加密后的数据。

  2. 使用Base64编码:HarmonyOS提供了Base64编码的API,你可以使用这些API将DataBlob中的数据转换为Base64字符串。

  3. 实现代码

    #include <string>
    #include "base64.h" // 假设HarmonyOS提供了base64的头文件
    
    std::string DataBlobToBase64(const DataBlob& dataBlob) {
        std::string base64Str;
        // 假设Base64Encode是一个可用的函数,接受字节数组和长度,返回Base64字符串
        base64Str = Base64Encode(reinterpret_cast<const unsigned char*>(dataBlob.GetData()), dataBlob.GetSize());
        return base64Str;
    }
    

    注意:上述代码中的Base64Encode函数和DataBlob类的GetDataGetSize方法需根据实际API进行调整。

  4. 调用函数:调用DataBlobToBase64函数,并传入你的DataBlob对象,即可得到Base64编码的字符串。

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

回到顶部