标题 | 常用字符串hash算法的node封装 |
内容 | 把一些常用的字符串hash算法做了一下封装 [js]代码: // hash.js exports.additive = function (key, prime) { key = key instanceof Buffer ? key : new Buffer(key); prime = prime == undefined ? 0xffffffff : prime; for (var hash = key.length, i = 0; i < key.length; i++) { hash += key[i]; } return (hash % prime); } exports.rotating = function(key) { key = key instanceof Buffer ? key : new Buffer(key); for (var hash = key.length, i = 0; i> 28) ^ key[i]; } return hash; } exports.bernstein = function(key, prime) { key = key instanceof Buffer ? key : new Buffer(key); prime = prime == undefined ? 0xffffffff : prime; var hash = 0; for (i=0; i> 7; hash += hash << 3; hash ^= hash >> 17; hash += hash << 5; return hash; } exports.fnv1a = function (key){ key = key instanceof Buffer ? key : new Buffer(key); var p = 16777619, hash = 0x811C9DC5; for(var i=0; i< key.length; i++) { hash = (hash ^ key[i]) * p; } hash += hash << 13; hash ^= hash >> 7; hash += hash << 3; hash ^= hash >> 17; hash += hash << 5; return hash; } |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。