SubtleCrypto 接口表示一组加密原语。它通过窗口上下文提供可用的Crypto.subtle 属性(通过Window.crypto)。
规范: "开发者使用 SubtleCrypto 接口时需要意识到提供的算法的设计和实现的安全性问题。原始的算法被提供以便开发人员最大化灵活地实现各种协议和应用,这些协议或者应用有必要使用原始的算法独特的方式表示组成和安全性参数。"
属性
此接口既不继承也不实现任何属性。
方法
此接口不继承任何方法。
SubtleCrypto.encrypt()以算法、密钥、明文为参数,返回一个包含加密数据的Promise对象。SubtleCrypto.decrypt()以算法、密钥、明文为参数,返回一个包含解密数据的Promise对象。SubtleCrypto.sign()- 以文本、算法和密码为参数,返回一个包含签名的
Promise。 SubtleCrypto.verify()- 以签名、与之匹配的文本、算法、密码为参数,验证签名的真实性,返回一个包含布尔型的 {jsxref("Promise")}} 对象。
SubtleCrypto.digest()- 以生成摘要的算法和文本作为参数,返回一个包含数据摘要的
Promise对象。 SubtleCrypto.generateKey()- 以给出的用法和返可提取性作为参数,返回一个包含用于对称算法的新生成的
CryptoKey或者包含两个新的生成的密钥用于非对称加密的CryptoKeyPair的Promise对象。 SubtleCrypto.deriveKey()- 以从 master key 派生出来的密钥和特定的算法作为参数,返回一个包含新生成的
CryptoKey的Promise对象。 SubtleCrypto.deriveBits()- 以从 master key 派生出来的密钥和特定的算法作为参数,返回一个包含新生成的伪随机字节的 Buffer的
Promise对象。 SubtleCrypto.importKey()- 以格式、算法、原始密钥数据、用途和可提取性作为参数,返回一个包含
CryptoKey的Promise对象。 SubtleCrypto.exportKey()- 返回一个包含所请求格式的密钥的 Buffer 的
Promise对象。 SubtleCrypto.wrapKey()- 返回一个包含在不安全环境中使用(传输,存储)的包裹对称密钥的
Promise对象。返回的被包裹的缓冲数据是按照参数中给出的格式的,包含使用给定算法的给予包装密钥包裹的密钥。 SubtleCrypto.unwrapKey()- 返回一个包含对应于参数中给出的包裹密钥的
CryptoKey的Promise对象。
规范
| Specification | Status | Comment |
|---|---|---|
| Web Cryptography API SubtleCrypto |
Recommendation | Initial definition. |
浏览器支持
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 37 | 34 (34) | 未实现 | ? | 未实现 |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | 37 | 37 | 34.0 (34) | 未实现 | ? | 未实现 |