CryptoKey:type 属性

基线 广泛可用

此功能已经成熟,并且可以在许多设备和浏览器版本上运行。它自以下时间起在各个浏览器中可用: 2015 年 7 月.

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中。

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 密码学 API
# dom-cryptokey-type

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。