首页 > 解决方案 > 如何将 Uint8Array 的对象转换为字符串?

问题描述

我和这个问题有同样的问题。我看到了答案,但我不明白我该怎么做。还有其他建议吗?

我的代码是:

var eccrypto = require("eccrypto");
var w,actual;
var publicKey = Buffer.from([4, 86, 82, 58, 244, 11, 140, 41, 132, 245, 184, 162, 163, 98, 49, 119, 168, 235, 252, 50, 6, 91, 147, 191, 190, 61, 65, 63, 101, 164, 132, 213, 188, 106, 26, 203, 171, 215, 240, 151, 7, 193, 10, 151, 103, 107, 1, 135, 117, 225, 5, 41, 55, 57, 18, 205, 98, 178, 82, 135, 170, 111, 188, 98, 57],'hex');

var privateKey= Buffer.from([238, 239, 199, 101, 188, 134, 13, 13, 195, 172, 125, 168, 225, 189, 72, 148, 225, 200, 127, 218, 204, 11, 150, 146, 180, 243, 195, 109, 200, 119, 50, 20],'hex');

eccrypto.encrypt(publicKey, Buffer.from("message")).then(function(encrypted) {
    console.log(encrypted)

    let encoded =JSON.stringify(encrypted)
    w=encoded;
    console.log(encoded)

    actual = JSON.parse((encoded))
    console.log(actual)
});

eccrypto.decrypt(privateKey,actual).then(function(plaintext) {
    console.log("Message to part B:", plaintext.toString()); 
});

当我使用actual变量时,我有这个错误:

Uncaught (in promise) Error: Bad public key

这是 encrypted 的输出:

在此处输入图像描述

这是编码的输出:

在此处输入图像描述

这是实际的输出“我认为有些事情发生了变化,不是吗?”: 在此处输入图像描述 谢谢你。

标签: javascriptreactjsnpm

解决方案


在解析时,您需要发送一个 reviver 函数,它有条件地解析对象。如果你看到编码的样子,你就会明白为什么 reviver 函数需要这样写。

在此处输入图像描述


推荐阅读