CryptoKey:extractable 属性
注意:此功能在 Web Workers 中可用。
CryptoKey 接口的只读属性 extractable 指示密钥是否可以使用 SubtleCrypto.exportKey() 或 SubtleCrypto.wrapKey() 进行提取。
如果密钥无法导出,则在使用 exportKey() 或 wrapKey() 提取它时会抛出异常。
值
一个布尔值,如果密钥可以导出则为 true,否则为 false。
示例
在此示例中,如果密钥无法导出,则“导出”按钮将禁用,并且不添加监听器。
js
// Export the given key and write it into the "exported-key" space.
async function exportCryptoKey(key) {
const exported = await window.crypto.subtle.exportKey("raw", key);
const exportedKeyBuffer = new Uint8Array(exported);
const exportKeyOutput = document.querySelector(".exported-key");
exportKeyOutput.textContent = `[${exportedKeyBuffer}]`;
}
// Enable or disable the exportButton if the key is extractable or not
function setExportButton(key) {
const exportButton = document.querySelector(".raw");
// Disable the button if the key is not extractable
exportButton.disabled = !key.extractable;
if (key.extractable) {
// Add an event listener to extract the key
exportButton.addEventListener("click", () => {
exportCryptoKey(key);
});
}
}
// Generate an encrypt/decrypt secret key,
// then enable and set up an event listener on the "Export" button.
window.crypto.subtle
.generateKey(
{
name: "AES-GCM",
length: 256,
},
true,
["encrypt", "decrypt"],
)
.then(setExportButton(key));
规范
| 规范 |
|---|
| Web 加密级别 2 # dom-cryptokey-extractable |
浏览器兼容性
加载中…