是否可以创建与Java等效的UUID生成器的Javascript版本

时间:2018-08-01 14:42:27

标签: javascript java jquery uuid

是否可以创建与Java的UUID.nameUUIDFromBytes("Hello world".getBytes(Charsets.UTF_8))等效的UUID生成器的javascript版本。有没有可用的Javascript或Jquery。

对于Java和Javascript版本,它应该为输入字符串返回确切的UUID。这是执行此操作的Java版本,https://ideone.com/GYvxCE供参考。

请帮助。

2 个答案:

答案 0 :(得分:1)

https://www.npmjs.com/package/uuid

看起来这个程序包具有与您要查找的方法类似的方法

答案 1 :(得分:1)

谢谢你们的帮助。我修改了@Akrion提供的解决方案,它对我有用。

修改后的解决方案如下。

const crypto = require('crypto');
const hexToUuid = require('hex-to-uuid');

const java_kind_hash = (input) => {
    var md5Bytes = crypto.createHash('md5').update(input).digest()
    md5Bytes[6] &= 0x0f;  // clear version 
    md5Bytes[6] |= 0x30;  // set to version 3 
    md5Bytes[8] &= 0x3f;  // clear variant 
    md5Bytes[8] |= 0x80;  // set to IETF variant
    return hexToUuid(md5Bytes.toString('hex'))
}

console.log('java_kind_hash ', java_kind_hash ("HelloWorld"));
    // 68e109f0-f40c-372a-95e0-5cc22786f8e6