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
About
-------------------------
jsSHA is a javaScript implementation of the complete Secure Hash Algorithm family as defined
by FIPS PUB 180-2 (http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf)
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
package.
Files
-------------------------
src/sha.js
The complete SHA implementation
src/sha1.js
A smaller/web friendly implementation of only SHA-1.
src/sha256.js
A smaller/web friendly implementation of only SHA-224 and SHA-256.
src/sha512.js
A smaller/web friendly implementation of only SHA-384 and SHA-512.
src/wrapper.js
Wrapper functions to be added to the above script files if the jsSHA 0.1 interface is desired
test/test.html
A test page that calculates various hashes and has their correct values.
Usage
-------------------------
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 http://jssha.sourceforge.net/
Archive for the ‘Resource’ Category
This applies to any device that uses lithium ion batteries (i.e. laptops, smartphones).
Battery
- For lithium ion batteries, you do not need to discharge them fully and recharge constantly. Since they don’t have the same "memory" as older nickel-metal hydride batteries, it is actually better to discharge a lithium ion only partially (10 to 20%) before recharging. You need to do a full discharge only about every 30 charges (usually around every 2 to 3 weeks).
- Consider taking your battery out when using your laptop plugged into AC power. Just make sure to keep the contacts clean. If you need to clean them, use a lint-free cloth moistened with rubbing alcohol every couple of months.
Software & Hardware
- Defrag your hard drive regularly
- Dim your screen to the lowest level you can tolerate
- Close unused programs running in the background
- Disable WIFI when not in use.
- Hibernate your computer, not standby.
Environment
- Avoid propping your laptop on a pillow, blanket, or other soft surface that can heat up or block cooling fans.
- Clean your desk. It sounds strange, but if you have a dusty, dirty desk, that dust will get into the vents and clog the cooling fan. Once the dust is inside your laptop, it is much harder to remove. You can try blasting it out with canned air, but you run the risk of damaging internal components. You can also remove the vent and clean out the grit, but remember that taking apart your laptop can void the warranty. So clean your desk at least once a week, if not daily.
- Try not to store your laptop in a place where the air temperature exceeds 80 degrees Fahrenheit, such as a hot car or an outdoor patio. And if your laptop heats up or is cold, let it return to room temperature before starting up.
- Use a cooling pad when using a notebook computer on your lap.
POP3 access is currently only available if one upgrades to Yahoo! Mail Plus. There is a work-around, however … simply change your account time zone/preferred content to Asia and POP3 will be enabled.
More details here. Happy POPing!
Here’s a list of open source version control software that I found helpful — I opted for Git and TortoiseGit.
PDFs are the de facto standard, and if you’re like me, you won’t pay for Adobe Acrobat nor want to use Adobe Reader as it’s too slow. So what do you do? Use free apps that will take care of these tasks.
Here are two that are essential:
1. Foxit PDF Reader – a free, lightweight, speedy Acrobat Reader replacement.
2. Cute PDF Writer – use it to create PDF files from any application on your computer.
3. Merge PDF – online service that will merge your files free of charge. Use it only for non-personal, unsecure docs.
More info here. Happy Computing!


