Skip to content

Instantly share code, notes, and snippets.

@dfkaye
Created May 13, 2023 20:12
Show Gist options
  • Save dfkaye/2bea26c07d1d8123868de82e37c52844 to your computer and use it in GitHub Desktop.
Save dfkaye/2bea26c07d1d8123868de82e37c52844 to your computer and use it in GitHub Desktop.
SHA3 512-bit encoding function in JavaScript, expanded version filip dimitrovsky's answer on stackoverflow using the browser's crypto API
// 13 May 2023
// SHA3 512-bit encoding function in JavaScript
// expanded version of filip dimitrovsky's answer on stackoverflow
// using the browser's crypto API
// https://stackoverflow.com/a/55926440
function sha512(src, fn) {
var s = '' + src;
var e = new TextEncoder('utf-8');
var c = e.encode(s);
var p = crypto.subtle.digest('SHA-512', c);
p.then(function (r) {
var b = new Uint8Array(r);
var a = [].map.call(b, function (v) {
return ('00' + v.toString(16)).slice(-2)
});-
var c = a.join('');
typeof fn == 'function'
? fn(c)
: console.log({ code: c });
});
};
/* test it out */
var src = "my string for encoding";
sha512(src);
// logs...
sha512(src, function (code) {
console.warn({ code });
});
// warns...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment