相关疑难解决方法(0)

CryptoKey ArrayBuffer 到 base64 并返回

我想知道如何解决这个问题。我使用 WebCrypto API 生成 RSA-OAEP 密钥对,然后从导出为 ArrayBuffer 的密钥对中导出 pkcs8 中的私钥,并且我想将此 ArrayBuffer 编码为 base64,以便可以将其存储为 PEM。

\n\n

在此测试示例中,我将密钥导出为 pkcs8 并将此 pkcs8 导入回 CryptoKey。问题是有时有效有时无效。

\n\n

这些是代码的结果:\n注意:仅发生这些状态之一,而不是同时发生。\n注意2:此示例不包含 -----BEGIN PRIVATE KEY----- 前缀和后缀 我仅对钥匙。

\n\n

Case1:未捕获(在承诺中)URIError:URI格式错误(\ xe2 \ x80 \ xa6)b64DecodeUnicode @ try.php:20b64toab @ try.php:70wayBack @ try.php:66(匿名函数)@ try.php:56

\n\n

Case2:未定义:1未捕获(承诺中)DOMException

\n\n

Case3:好的 - 一直可以正常工作。

\n\n

我不知道是什么原因导致了错误,但我认为这与 base64 编码有关。正如我所说,有时私钥生成正常,有时则不行。

\n\n

非常感谢您提前提供的每一个帮助。

\n\n
function b64EncodeUnicode(str) {\n    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {\n        return String.fromCharCode(\'0x\' + p1);\n    }));\n}\n\nfunction b64DecodeUnicode(str) {\n    return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {\n        return \'%\' + (\'00\' + c.charCodeAt(0).toString(16)).slice(-2);\n …
Run Code Online (Sandbox Code Playgroud)

javascript base64 pem arraybuffer webcrypto-api

4
推荐指数
1
解决办法
8181
查看次数

标签 统计

arraybuffer ×1

base64 ×1

javascript ×1

pem ×1

webcrypto-api ×1