HarmonyOS鸿蒙Next中签名后生成的unit8array如何转成字符串

HarmonyOS鸿蒙Next中签名后生成的unit8array如何转成字符串

签名后的数据怎么转成字符串呢:

let input1: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from("This is Sign test plan1", 'utf-8').buffer) };
let input2: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from("This is Sign test plan2", 'utf-8').buffer) };
async function signMessagePromise(priKey: cryptoFramework.PriKey) {
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);
return signData;
}

更多关于HarmonyOS鸿蒙Next中签名后生成的unit8array如何转成字符串的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

使用base65转码就可以了:

let str = base64Helper.encodeToStringSync(signData.data)

这个加了就OK了

更多关于HarmonyOS鸿蒙Next中签名后生成的unit8array如何转成字符串的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next中,Uint8Array 是一种表示8位无符号整数的数组。要将 Uint8Array 转换为字符串,可以使用 TextDecoder API。TextDecoder 是用于将字节数组(如 Uint8Array)解码为字符串的工具。以下是一个示例代码:

// 假设你有一个 Uint8Array 对象
const uint8Array = new Uint8Array([72, 101, 108, 108, 111]);

// 使用 TextDecoder 将 Uint8Array 转换为字符串
const decoder = new TextDecoder('utf-8'); // 指定编码格式为 UTF-8
const str = decoder.decode(uint8Array);

console.log(str); // 输出: "Hello"

在这个示例中,TextDecoder 接受一个 Uint8Array 并将其解码为指定编码格式(如 UTF-8)的字符串。TextDecoder 是鸿蒙系统内置的 API,可以直接使用,无需额外导入库。

如果 Uint8Array 包含其他编码格式的数据(如 UTF-16),可以通过指定相应的编码格式来正确解码。

const uint8Array = new Uint8Array([255, 254, 72, 0, 101, 0, 108, 0, 108, 0, 111, 0]);

const decoder = new TextDecoder('utf-16le'); // 指定编码格式为 UTF-16LE
const str = decoder.decode(uint8Array);

console.log(str); // 输出: "Hello"
``

这种方法适用于将 `Uint8Array` 转换为字符串的场景,特别是在处理二进制数据或网络请求时。

在HarmonyOS鸿蒙Next中,将签名后生成的Uint8Array转换为字符串,可以使用TextDecoder类。具体步骤如下:

  1. 创建TextDecoder实例。
  2. 使用decode方法将Uint8Array转换为字符串。

示例代码:

let uint8Array = new Uint8Array([72, 101, 108, 108, 111]); // 示例数据
let decoder = new TextDecoder('utf-8');
let str = decoder.decode(uint8Array);
console.log(str); // 输出: "Hello"

这段代码将Uint8Array转换为UTF-8编码的字符串。

回到顶部