MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

这篇翻译不完整。请帮忙从英语翻译这篇文章

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

草案
本页尚未完工.

Web Crypto API 为脚本提供加密了一套关于密码(学)的接口,以便用于构建需要使用密码的系统。

这套API的基础特性是允许在脚本中使用和维护密钥的存储,但是不允许使用JavaScript访问这些密钥本身。

这套接口允许脚本使用以下功能:

  • digest, 摘要,即计算数据块hash的能力,用于检测数据的变动。
  • mac, 计算消息验证码的能力。
  • sign and verify, 对文档进行数字签名和验证的能力。
  • encrypt and decrypt, 对文档进行加密和解密的能力。
  • import and export, 导出和导出密钥的能力。
  • key generation, 产生密码学中使用的私钥或者密钥对的能力,不使用base key,而是使用本地系统的能力。(the ability to create a cryptographically secure key, or key pair, without the use of base key, but using the available entropy of the local system.)
  • key wrapping and unwrapping, 密钥包裹和解包,即在不接触底层密钥内容的情况下,与第三方传送、接收使用另一个密钥加密后的密钥的能力。
  • random, 生成密码学中使用的伪随机数的能力。

Web Crypto API并不能解决所有web站点或者应用会碰到的密码学问题,例如:

  • 它并没有降低对浏览器 同源安全模型 的要求,所以可能碰到一些为不同站点集中颁发证书的情况。
  • 它不处理独立的硬件,例如智能卡、加密狗,或者randomness generators。

警告!

  • 仅仅使用加密技术并不能保证您的系统安全。安全性是一个不断地评估系统在使用时所产生的风险的过程。随着时间的推移,环境和风险会发生变化。
  • 在处理安全问题时,整个系统都需要被考虑到。使用了Web Crypto API的同时,Web开发者不应只考虑脚本的安全性,而应该考虑到服务器和数据连接的安全性。整个系统中最薄弱的部分决定了整体的安全性。

接口

Some browsers implemented an interface called Crypto without having it well defined or being cryptographically sound. In order to avoid confusion, methods and properties of this interface are gone in browsers implementing the Web Crypto API, and all Web Crypto API methods are available on a new interface: SubtleCrypto. The Crypto.subtle property gives access to an object implementing it.

Use cases

The Web Crypto API can be used:

  • to verify that data has not been tampered by a third-party. Even if the data is stored in the clear, the storage of a signature, generated from a password, allows the people knowing the password to know that it is genuine.

Specifications

Specification Status Comment
Web Cryptography API Recommendation Initial definition

Browser Compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 37 ? ? 24 ?
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile
Basic support 未实现 37 ? ? ? 24 ?

文档标签和贡献者

 此页面的贡献者: auver, TooBug
 最后编辑者: auver,