Crypto

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 global 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 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

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
Crypto
11
12
26
11
15
5
≤37
18
26
14
5
1.0
getRandomValues
11
12
26
11
15
5
≤37
18
26
14
5
1.0
randomUUID
92
92
No
No
78
No
92
92
No
No
No
16.0
subtle
37
12
34
11
24
11
7-11.1
37
37
34
24
11
7-11.3
3.0

See also

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Crypto