Javascript中是否有一个从整数或Long数据类型生成UUID / GUID的函数。如何从int或Long数据类型生成UUID / GUID?

时间:2019-04-17 09:16:58

标签: javascript uuid guid mirth

我正在将mirth connect 2.2.1升级到3.7.0。在最新版本中,messageid会生成为long数据类型,而在旧版本中,它会生成为GUID。我们的SQL表具有unique-identifier列以接受messageid。所以现在我需要在javascript中将Long数据类型转换为UUID / GUID。每个消息都具有唯一的messageid,因此对于单个消息,生成的GUID应该相同。如何转换?

2 个答案:

答案 0 :(得分:0)

如果我错了,其他人应该纠正我,但是不能,JavaScript没有提供将GUID转换为Long的功能。

实际上,我什至不能确定是否可以从Long到GUID一致而不会丢失或压缩,因为两个数据结构的长度都不相同。

在某些情况下,如果GUID的高位为零,则有可能从Long转换为GUID,但是在大多数情况下,会存在严重的安全溢出风险,不是吗?

答案 1 :(得分:0)

除了纯Javascript之外,最简单的方法就是使用Java来帮助您。

var guid = new java.util.UUID(messageId, messageId);

由于您的messageId在各个渠道之间将不会唯一,因此您可以将其中一个参数替换为其他参数。也许参加了channelId?

const UUID = java.util.UUID;
var guid = new UUID(UUID.fromString(channelId).getMostSignificantBits(), messageId);