gpt4 book ai didi

internet-explorer - Internet Explorer 11 中的公钥加密

转载 作者:行者123 更新时间:2023-12-04 07:46:00 25 4
gpt4 key购买 nike

我正在尝试使用以下代码为 IE11 使用 JavaScript 实现公钥加密:

<script>
var data = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

var crypto = window.crypto || window.msCrypto;
var cryptoSubtle = crypto.subtle;

var genOp = cryptoSubtle.generateKey(
{
name: "RSA-OAEP",
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
hash: { name: "SHA-256" },
},
true,
["encrypt", "decrypt"]
);

genOp.onerror = function (e) {
console.error(e);
};

genOp.oncomplete = function (e) {
var key = e.target.result;
console.log(key);
console.log(key.publicKey);

var encOp = cryptoSubtle.encrypt(
{
name: "RSA-OAEP"
},
key.publicKey,
data
);

encOp.onerror = function (e) {
console.error(e);
};

encOp.oncomplete = function (e) {
var encrypted = e.target.result;
console.log(new Uint8Array(encrypted));
};
};
</script>

它生成 key 对但未能通过错误事件进行加密。具有对称 AES key 的类似代码有效。 IE11是否支持公钥加密?我的代码有什么问题吗?

最佳答案

我已经找到了原因。我需要在调用加密调用时添加哈希字段:

        var encOp = cryptoSubtle.encrypt(
{
name: "RSA-OAEP",
hash: { name: "SHA-256" }
},
key.publicKey,
data
);

这与 Web Cryptography API specification 不匹配但它有效。

关于internet-explorer - Internet Explorer 11 中的公钥加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33047314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com