| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- # hash-base
 
- [](https://www.npmjs.org/package/hash-base)
 
- [](https://travis-ci.org/crypto-browserify/hash-base)
 
- [](https://david-dm.org/crypto-browserify/hash-base#info=dependencies)
 
- Abstract base class to inherit from if you want to create streams implementing the same API as node crypto [Hash][1] (for [Cipher][2] / [Decipher][3] check [crypto-browserify/cipher-base][4]).
 
- ## Example
 
- ```js
 
- const HashBase = require('hash-base');
 
- const inherits = require('inherits');
 
- // our hash function is XOR sum of all bytes
 
- function MyHash () {
 
- 	HashBase.call(this, 1); // in bytes
 
- 	this._sum = 0x00;
 
- };
 
- inherits(MyHash, HashBase)
 
- MyHash.prototype._update = function () {
 
- 	for (let i = 0; i < this._block.length; ++i) {
 
- 		this._sum ^= this._block[i];
 
- 	}
 
- };
 
- MyHash.prototype._digest = function () {
 
- 	return this._sum;
 
- };
 
- const data = Buffer.from([0x00, 0x42, 0x01]);
 
- const hash = new MyHash().update(data).digest();
 
- console.log(hash); // => 67
 
- ```
 
- You also can check [source code](index.js) or [crypto-browserify/md5.js][5]
 
- ## LICENSE
 
- MIT
 
- [1]: https://nodejs.org/api/crypto.html#crypto_class_hash
 
- [2]: https://nodejs.org/api/crypto.html#crypto_class_cipher
 
- [3]: https://nodejs.org/api/crypto.html#crypto_class_decipher
 
- [4]: https://github.com/crypto-browserify/cipher-base
 
- [5]: https://github.com/crypto-browserify/md5.js
 
 
  |