mirror of
https://github.com/wu736139669/Monkey-Test.git
synced 2026-08-07 06:37:16 +00:00
31 lines
707 B
JavaScript
31 lines
707 B
JavaScript
var createHash = require('sha.js')
|
|
|
|
var md5 = toConstructor(require('./md5'))
|
|
var rmd160 = toConstructor(require('ripemd160'))
|
|
|
|
function toConstructor (fn) {
|
|
return function () {
|
|
var buffers = []
|
|
var m= {
|
|
update: function (data, enc) {
|
|
if(!Buffer.isBuffer(data)) data = new Buffer(data, enc)
|
|
buffers.push(data)
|
|
return this
|
|
},
|
|
digest: function (enc) {
|
|
var buf = Buffer.concat(buffers)
|
|
var r = fn(buf)
|
|
buffers = null
|
|
return enc ? r.toString(enc) : r
|
|
}
|
|
}
|
|
return m
|
|
}
|
|
}
|
|
|
|
module.exports = function (alg) {
|
|
if('md5' === alg) return new md5()
|
|
if('rmd160' === alg) return new rmd160()
|
|
return createHash(alg)
|
|
}
|