Andrea Fazzi 994369ab61 First commit 7 năm trước cách đây
..
test 994369ab61 First commit 7 năm trước cách đây
.npmignore 994369ab61 First commit 7 năm trước cách đây
.travis.yml 994369ab61 First commit 7 năm trước cách đây
LICENSE 994369ab61 First commit 7 năm trước cách đây
README.md 994369ab61 First commit 7 năm trước cách đây
bin.js 994369ab61 First commit 7 năm trước cách đây
hash.js 994369ab61 First commit 7 năm trước cách đây
hexpp.js 994369ab61 First commit 7 năm trước cách đây
index.js 994369ab61 First commit 7 năm trước cách đây
package.json 994369ab61 First commit 7 năm trước cách đây
sha.js 994369ab61 First commit 7 năm trước cách đây
sha1.js 994369ab61 First commit 7 năm trước cách đây
sha224.js 994369ab61 First commit 7 năm trước cách đây
sha256.js 994369ab61 First commit 7 năm trước cách đây
sha384.js 994369ab61 First commit 7 năm trước cách đây
sha512.js 994369ab61 First commit 7 năm trước cách đây

README.md

sha.js

Streamable SHA hashes in pure javascript.

build status NPM

Example

var createHash = require('sha.js')

var sha256 = createHash('sha256')
var sha512 = createHash('sha512')

var h = sha256.update('abc', 'utf8').digest('hex')
console.log(h) //ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

//LEGACY, do not use in new systems:
var sha0 = createHash('sha')
var sha1 = createHash('sha1')


supported hashes

sha.js currently implements:

  • sha256
  • sha512
  • sha1 (legacy, no not use in new systems)
  • sha (legacy, no not use in new systems)

Note

Note, this doesn't actually implement a stream, but wrapping this in a stream is trivial. but is does update incrementally, so you can hash things larger than ram, and also, since it reuses the typedarrays, 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"

License

MIT