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

问题描述 投票:0回答:2

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

javascript uuid guid mirth
2个回答
0
投票

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

实际上,我甚至不确定是否可以在没有数据丢失或压缩的情况下始终从Long到GUID,因为两个数据结构的长度不同。

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


0
投票

最简单的方法是使用Java来帮助你,而不是纯粹的Javascript。

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

由于您的messageId在各个频道中不会是唯一的,因此您可以使用其他内容替换其中一个参数。也许参加channelId?

const UUID = java.util.UUID;
var guid = new UUID(UUID.fromString(channelId).getMostSignificantBits(), messageId);
© www.soinside.com 2019 - 2024. All rights reserved.