You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			| 
				
					
						
							 | 
			4 years ago | |
|---|---|---|
| .. | ||
| test | 4 years ago | |
| .travis.yml | 4 years ago | |
| LICENSE | 4 years ago | |
| README.md | 4 years ago | |
| bin.js | 4 years ago | |
| hash.js | 4 years ago | |
| index.js | 4 years ago | |
| package.json | 4 years ago | |
| sha.js | 4 years ago | |
| sha1.js | 4 years ago | |
| sha224.js | 4 years ago | |
| sha256.js | 4 years ago | |
| sha384.js | 4 years ago | |
| sha512.js | 4 years ago | |
		
			
				
				README.md
			
		
		
			
			
		
	
	sha.js
Node style SHA on pure JavaScript.
var shajs = require('sha.js')
console.log(shajs('sha256').update('42').digest('hex'))
// => 73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049
console.log(new shajs.sha256().update('42').digest('hex'))
// => 73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049
var sha256stream = shajs('sha256')
sha256stream.end('42')
console.log(sha256stream.read().toString('hex'))
// => 73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049
supported hashes
sha.js currently implements:
- SHA (SHA-0) -- legacy, do not use in new systems
 - SHA-1 -- legacy, do not use in new systems
 - SHA-224
 - SHA-256
 - SHA-384
 - SHA-512
 
Not an actual stream
Note, this doesn't actually implement a stream, but wrapping this in a stream is trivial. It does update incrementally, so you can hash things larger than RAM, as it uses a constant amount of memory (except when using base64 or utf8 encoding, see code comments).
Acknowledgements
This work is derived from Paul Johnston's A JavaScript implementation of the Secure Hash Algorithm.