Javascript中是否有从整数或长数据类型生成UUID / GUID的函数.如何从 int 或 Long 数据类型生



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

由于您使用的是 Mirth Connect,它使用 Rhino 引擎运行 JavaScript 并选择性地加载 Java 类,最简单的方法是使用 Java 来帮助你,而不是纯 Javascript。

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

由于您的 messageId 在各个渠道中不是唯一的,因此您可以将其中一个参数替换为其他参数。也许采取频道ID的一部分?

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

错了,其他人应该纠正我,但不,JavaScript 不提供将 GUID 转换为 Long 的函数。

事实上,我什至不确定是否可以在不丢失或压缩的情况下始终如一地从 Long 转到 GUID,因为两种数据结构的长度不同。

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

最新更新