diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/hash-base/README.md | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/hash-base/README.md')
| -rw-r--r-- | node_modules/hash-base/README.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/hash-base/README.md b/node_modules/hash-base/README.md new file mode 100644 index 00000000..83ae2edc --- /dev/null +++ b/node_modules/hash-base/README.md @@ -0,0 +1,48 @@ +# 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) + +[](https://github.com/feross/standard) + +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 |
