Web/API/Crypto

From Get docs

The Crypto interface represents basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.

Note: This feature is available in Web Workers.

The Web Crypto API is accessed through the Window.crypto property, which is a Crypto object.

Properties

This interface implements properties defined on RandomSource.

Crypto.subtle Read only Secure context
Returns a SubtleCrypto object providing access to common cryptographic primitives, like hashing, signing, encryption, or decryption.

Methods

This interface implements methods defined on RandomSource.

Crypto.getRandomValues()
Fills the passed TypedArray with cryptographically sound random values.

Usage notes

You should avoid using the Web Crypto API on insecure contexts, even though the Crypto interface is present on insecure contexts, as is the Window.crypto property. In addition, the Crypto method getRandomValues() is available on insecure contexts, but the subtle property is not.

In general, you probably should just treat Crypto as available only on secure contexts.

Specifications

Specification Status Comment
Web Cryptography APIThe definition of 'Crypto' in that specification. Recommendation Initial definition

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
Crypto Chrome

Full support 11

Edge

Full support 12

Firefox

Full support 26

IE

Full support 11

Opera

Full support 15

Safari

Full support 6.1

WebView Android

Full support Yes

Chrome Android

Full support 18

Firefox Android

Full support 26

Opera Android

Full support 14

Safari iOS

Full support 6.1

Samsung Internet Android

Full support 1.0

getRandomValues() Chrome

Full support 11

Edge

Full support 12

Firefox

Full support 26

IE

Full support 11

Opera

Full support 15

Safari

Full support 6.1

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 26

Opera Android

Full support 14

Safari iOS

Full support 6.1

Samsung Internet Android

Full support 1.0

subtle

Experimental'

Chrome

Full support 37

Edge

Full support 12

Firefox Full support 34


Full support 34


No support 32 — 34

Disabled'

Disabled' From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

IE

Partial support 11

Opera

Full support 24

Safari Full support 10.1


Full support 10.1


Full support 7

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

WebView Android

Full support 37

Chrome Android

Full support 37

Firefox Android Full support 34


Full support 34


No support 32 — 34

Disabled'

Disabled' From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

Opera Android

Full support 24

Safari iOS Full support 10.3


Full support 10.3


Full support 7

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Samsung Internet Android

Full support 3.0

Legend

Full support  
Full support
Partial support  
Partial support
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.
User must explicitly enable this feature.'
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also

Crypto by Mozilla Contributors is licensed under CC-BY-SA 2.5.