将字母数字字符串哈希到16字节的十六进制字符串

时间:2017-01-15 21:29:18

标签: hash

我需要一个哈希算法,它采用28 character alphanumeric [a-zA-Z0-9]字符串并输出16 Byte Hex UUID

示例哈希(" cVoFfGI0vhfvWD61Hh1QTsmUJRT2")= 2f234454-cf6d-4a0f-adf2-f4911ba9ffa6

有没有办法使用md5或SHA1?

感谢。

编辑1: 字母数字字符串的长度固定为28个字符。

1 个答案:

答案 0 :(得分:1)

这里是javascript(nodeJS)

的解决方案
var crypto = require('crypto');

function hash(input) {
    var s = crypto.createHash('md5').update(input).digest("hex");
    return s.substr(0, 8) + '-' + s.substr(8, 4) + '-' + s.substr(12, 4) + '-' + s.substr(16, 4) + '-' + s.substr(20, 12);
}

hash('cVoFfGI0vhfvWD61Hh1QTsmUJRT2');