Reference for jsSHA

jsSHA - A JavaScript implementation of the complete Secure Hash Standard family
            (SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512) by Brian Turek

jsSHA is a javaScript implementation of the complete Secure Hash Algorithm family as defined
by FIPS PUB 180-2 (

With the slow phasing out of MD5 as the standard hash to use in web applications, a client-side
implementation of the complete Secure Hash Standard family was needed.  Due to SHA-384 and SHA-512's
use of 64-bit values throughout the algorithm, JavaScript can not easily natively support the calculation
of these hashes.  As a result, a bit of hacking had to be done to make sure the values behaved themselves.
SHA-224 was added to the Secure Hash Standard family on 25 February 2004 so it was also included in this

The complete SHA implementation

A smaller/web friendly implementation of only SHA-1.

A smaller/web friendly implementation of only SHA-224 and SHA-256.

A smaller/web friendly implementation of only SHA-384 and SHA-512.

Wrapper functions to be added to the above script files if the jsSHA 0.1 interface is desired

A test page that calculates various hashes and has their correct values.

Include the desired JavaScript file (sha.js, sha1.js, sha256.js, or sha512.js) in your header (sha.js used below):
<script type="text/javascript" src="/path/to/sha.js"></script>

Instantiate a new jsSHA object with your string to be hashed as the only parameter.  Then, call getHash with the desired
hash variant (SHA-1, SHA-224, SHA-256, SHA-384, or SHA-512) and output type (HEX or B64).  In the example below,
"This is a Test" and "SHA-512" were used as the string to be hashed and variant respectively.

var shaObj = new jsSHA("This is a Test");
var hash = shaObj.getHash("SHA-512", "HEX");

NOTE: If you are using sha1.js, omit the SHA variant parameter as there is only one option.

Since the interface was changed drastically from 0.1 to 1.0, src/wrapper.js is included in case the old interface is desired.
Simply copy and paste the correct functions from wrapper.js to the bottom of the used jsSHA JS file.

Contact Info
The project's website is located at

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.