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.

An object with this interface is available on Web context via the Window.crypto property.

Properties

This interface implements properties defined on RandomSource.

Crypto.subtle Read only
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.

Specifications

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

Browser Compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 11Edge Full support 12Firefox Full support 26IE Full support 11Opera Full support 15Safari Full support 6.1WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support 12Firefox Android Full support 26Opera Android Full support 14Safari iOS Full support 6.1Samsung Internet Android Full support Yes
subtle
Experimental
Chrome Full support 37Edge Full support 12Firefox 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 11Opera Full support 24Safari Full support 10.1
Full support 10.1
Full support 7
Prefixed
Prefixed Requires the vendor prefix: webkit
WebView Android Full support 37Chrome Android Full support 37Edge Mobile Full support 12Firefox 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 24Safari iOS Full support 10.1
Full support 10.1
Full support 7
Prefixed
Prefixed Requires the vendor prefix: webkit
Samsung Internet Android Full support Yes
getRandomValuesChrome Full support 11Edge Full support 12Firefox Full support 26IE Full support 11Opera Full support 15Safari Full support 4WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support 12Firefox Android Full support 26Opera Android Full support 14Safari iOS Full support 4Samsung Internet Android Full support Yes

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

Document Tags and Contributors

Contributors to this page: fscholz, soanvig, jpmedley, Sebastianz, teoli, Noitidart, njoyce
Last updated by: fscholz,