Web Crypto 示例 一个摘要算法(也称为哈希算法)简单示例: javascript const myText new TextEncoder().encode("Hello world!") const myDigest await crypto.subtle.digest( { name: "SHA256", }, myText, // The data you want to hash as an ArrayBuffer ) return new Response(new Uint8Array(myDigest)) 方法 crypto.getRandomValues(buffer ArrayBuffer ) ArrayBuffer :使用随机值填充ArrayBuffer。 SubtleCrypto方法 这些方法都可以通过crypto.subtle调用: digest() digest(algorithm, data) Promise 返回一个由算法生成的摘要和作为参数给出的文本实现的Promise。 参数: algorithm string object:以特定算法的格式描述要使用的算法,包括任何必需的参数。 data ArrayBuffer generateKey() generateKey(algorithm, extractable, keyUsages) Promise Promise 返回一个Promise,该Promise使用新生成的CryptoKey,对于对称算法,或一个CryptoKeyPair,包含两个新生成的密钥,用于非对称算法。例如,要生成新的AESGCM密钥: javascript let keyPair await crypto.subtle.generateKey( { name: "AESGCM", length: "256" }, true, ["encrypt", "decrypt"] ) 参数: algorithm object:以特定算法的格式描述要使用的算法,包括任何必需的参数。 extractable bool keyUsages Array:指示新密钥可能用途的字符串数组。 importKey() importKey(format, keyData, algorithm, extractable, keyUsages) Promise 将密钥从某种外部可移植格式转换为用于Web Crypto API的密钥。 参数: format string:描述要导入的密钥的格式。 keyData ArrayBuffer algorithm object:以特定算法的格式描述要使用的算法,包括任何必需的参数。 extractable bool keyUsages Array:指示新密钥可能用途的字符串数组。