是否可以使用字符串作为加密密钥并仅使用 WebCryptoAPI 来加密 CryptoKey(私钥)?我实现了一个功能,但出现以下错误:
Uncaught (in promise) DOMException: AES key data must be 128 or 256 bits
还有,我的功能。
function encryptPrivateKey() {
var promise = new Promise(function (resolve, reject) {
try {
var key = new TextEncoder().encode(pwd);
var iv = crypto.getRandomValues(new Uint8Array(12));
var alg = {name: 'AES-CTR', iv: iv};
window.crypto.subtle.importKey('raw', key, alg, false, ['encrypt']).then(function (key) {
window.crypto.subtle.encrypt(alg, key, privateKeyPEM).then(function (key) {
privateKey = key;
})
});
resolve(privateKey);
} catch (err) {
reject(Error(err));
}
});
return promise.then(function (result) {
return result;
}, function (err) {
console.log(err);
});
}