HarmonyOS 鸿蒙Next 签名是一个unit8Array,我怎么获得base64
HarmonyOS 鸿蒙Next 签名是一个unit8Array,我怎么获得base64 签名是一个unit8Array,我怎么获得base64
2 回复
得到unit8arry后需要使用base64进行编码,base64Helper.encodeToStringSync(signData.data),可以参考下面的demo:
async function signMessagePromise(priKey: cryptoFramework.PriKey) {
let base64Helper = new util.Base64Helper();
let signAlg = "RSA1024|PKCS1|MD5";
let signer = cryptoFramework.createSign(signAlg);
await signer.init(priKey);
await signer.update(input1); // 如果明文较短,可以直接调用sign接口一次性传入
let signData = await signer.sign(input2);
let str = base64Helper.encodeToStringSync(signData.data)
let unitdata = base64Helper.decodeSync(str)
let signBlob: cryptoFramework.DataBlob = { data: unitdata }
return signBlob;
}
更多关于HarmonyOS 鸿蒙Next 签名是一个unit8Array,我怎么获得base64的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,如果你有一个Uint8Array
(即无符号8位整型数组),并且你需要将其转换为Base64编码,可以使用JavaScript提供的内置方法来完成。以下是如何在鸿蒙应用中进行这一转换的方法:
-
确保环境支持:鸿蒙应用开发中通常支持JavaScript,特别是如果你在使用ArkUI框架。
-
使用
btoa
函数:虽然btoa
直接处理的是字符串,但你可以先将Uint8Array
转换为字符串(通常使用字符编码如latin1
或ISO-8859-1
,这些编码在这种情况下与无符号8位值一一对应)。不过,由于btoa
只接受ASCII字符串,你需要先将Uint8Array
转换为二进制字符串,再转为Base64。 -
代码实现:
function uint8ArrayToBase64(uint8Array) { let binaryString = ''; for (let i = 0; i < uint8Array.length; i++) { binaryString += String.fromCharCode(uint8Array[i]); } return window.btoa(binaryString); } // 示例使用 let uint8Array = new Uint8Array([72, 101, 108, 108, 111]); // "Hello" 的 ASCII 码 let base64String = uint8ArrayToBase64(uint8Array); console.log(base64String); // 输出 "SGVsbG8="
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html