【发布时间】:2021-08-10 09:42:31
【问题描述】:
我正在尝试让 SubtleCrypto 与 IE 11 一起使用。具体来说,我只是想简单地加密一些东西,让我开始,我已经能够为 AES-CBC 生成一个密钥,但是当我尝试进行加密我得到一个错误:“类型不匹配错误”。
我有一个 JSFiddle:https://jsfiddle.net/tuwzsyyp/
try {
//Asynchronous crypto
window.msCrypto.subtle.generateKey(
{ name: 'AES-CBC', length: 256 },
false,
['encrypt']
)
.oncomplete = function (key) {
try {
window.msCrypto.subtle.encrypt(
{
name: "AES-CBC",
iv: initialisationVector
},
key, //from generateKey or importKey above
new Uint16Array(currentArrayBuffer) //ArrayBuffer of data you want to encrypt
).oncomplete = function (encrypted) {
alert(3 + "; " + new Uint16Array(encrypted));
};
} catch (err) {
alert(err);
}
};
} catch (err) {
alert(err);
}
我认为输入数据的类型很可能是错误的,但 Microsoft 文档并不清楚。它说它需要是一个 ArrayBufferView 但据我所知 Uint16Array 应该满足它。
【问题讨论】:
标签: javascript