Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Uses the SubtleCrypto interface of the Web Cryptography API to hash a message using SHA-256.
* Returns SHA-256 hash from supplied message.
* @param {String} message.
* @returns {String} hash as hex string.
* @example
* sha256('abc').then(hash => console.log(hash));
* const hash = await sha256('abc');
async function sha256(message) {
const msgUint8 = new TextEncoder().encode(message); // encode as (utf-8) Uint8Array
const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8); // hash the message
const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
const hashHex = => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string
return hashHex;

This comment has been minimized.

Copy link
Owner Author

chrisveness commented Jun 21, 2018

Note that access to the WebCrypto API is restricted to secure origins (e.g. https).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.