CryptoKey:type 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

CryptoKey 接口的只读 type 属性指示对象所表示的密钥种类。它可以具有以下值:

以下字符串之一:"secret""private""public"

示例

此函数使用SubtleCrypto.verify() 和参数中给定的公钥来验证消息。如果密钥不是公钥,它总是返回 "invalid",因为此类验证从根本上来说是不安全的。

js
async function verifyMessage(publicKey) {
  const signatureValue = document.querySelector(
    ".rsassa-pkcs1 .signature-value",
  );
  signatureValue.classList.remove("valid", "invalid");

  let result = false; // By default, it is invalid

  if (publicKey.type === "public") {
    const encoded = getMessageEncoding();
    result = await window.crypto.subtle.verify(
      "RSASSA-PKCS1-v1_5",
      publicKey,
      signature,
      encoded,
    );
  }

  signatureValue.classList.add(result ? "valid" : "invalid");
}

规范

规范
Web 加密级别 2
# dom-cryptokey-type

浏览器兼容性