'How to calculate SHA hash of a string in browser JavaScript
Very new to JavaScript I am.
What I think I know
- There's the
CryptoJSmodule for the frontend. - There's a
Closure Libraryby Google.
I tried
- Using the
CryptoJSmodule. But I didn't get the hexadecimal hash. - Using the closure library according to this doc, this example and from this cdn.
But my question is
- Is there a native crypto library on browser?
Solution 1:[1]
There is a native browser crypto.
A code example for what you want is:
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 encoder = new TextEncoder();
const data = encoder.encode(message);
const hash = await crypto.subtle.digest('SHA-256', data);
return hash;
}
digestMessage(text)
.then(digestBuffer => console.log(digestBuffer.byteLength));
The above example is found here which is a good start for in-browser cryptography.
Solution 2:[2]
Re : "Is there a native crypto library on browser?"
You may use CDN library.
https://cdnjs.com/libraries/crypto-js
Please quote the following script tag into your html :
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js" integrity="sha512-E8QSvWZ0eCLGk4km3hxSsNmGWbLtSCSUcewDQPQWZF6pEU8GlT8a5fF32wOl1i8ftdMhssTrF/OhyGWwonTcXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
For how to use the methods from the library , please refer to the website below :
https://cryptojs.gitbook.io/docs/
The following page shows an example where my suggestion comes from :
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Alex Scott |
| Solution 2 |
