Skip to content

Instantly share code, notes, and snippets.

@technikhil314
Last active November 30, 2023 09:55
Show Gist options
  • Save technikhil314/40f3c41e1039f4c7964843e47a9f25fc to your computer and use it in GitHub Desktop.
Save technikhil314/40f3c41e1039f4c7964843e47a9f25fc to your computer and use it in GitHub Desktop.
Generate sha-256 hash using crypto in browsers
const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.';
async function digestMessage(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 = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string
return hashHex;
}
const digestHex = await digestMessage(text);
// first seven characters of sha-256 are considered unique to certain extent
console.log(digestHex.slice(0,7));
// nore on mdn https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment