考虑到UUID rfc 4122(16字节)远大于MongoDB ObjectId(12字节),我试图找出它们的碰撞概率如何比较.
我知道这种情况不太可能,但在我的情况下,大多数ID将在大量移动客户端中生成,而不是在有限的服务器集中生成.我想知道在这种情况下,是否存在合理的担忧.
与通常由少数客户生成所有ID的情况相比:
是否有与.NET相当的内置函数
Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)
在可可?
我的愿望是产生一个字符串,550e8400-e29b-41d4-a716-446655440000其中的字符串代表一个唯一的标识符.
我正在使用此代码将UUID转换为byte
public byte[] getIdAsByte(UUID uuid)
{
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用此功能重新创建UUID,
public UUID frombyte(byte[] b)
{
return UUID.nameUUIDFromBytes(b);
}
Run Code Online (Sandbox Code Playgroud)
它与UUID不同.前后转换randomUUID会返回两个不同的.
UUID u = UUID.randomUUID();
System.out.println(u.toString());
System.out.println(frombyte(getIdAsByte(u)).toString());
Run Code Online (Sandbox Code Playgroud)
打印:
1ae004cf-0f48-469f-8a94-01339afaec41
8b5d1a71-a4a0-3b46-bec3-13ab9ab12e8e
Run Code Online (Sandbox Code Playgroud) UUID URL是否安全?我想将它用作备用ID,但也许允许访问记录作为URL中的ID.虽然我可以使用Ruby SecureRandom.urlsafe_base64(27)来获取相同长度的随机base64编码字符串,但UUID看起来更干净.
在MySQL/MariaDB中,存储uuid的最有效方法是在BINARY(16)列中.但是,有时您希望将其作为格式化的uuid字符串获取.
鉴于以下表结构,我将如何以默认格式化方式获取所有uuids?
CREATE TABLE foo (uuid BINARY(16));
Run Code Online (Sandbox Code Playgroud) 我见过有人使用UUID进行身份验证令牌生成.但是,在RFC 4122中说明了这一点
不要以为UUID难以猜测; 例如,它们不应被用作安全功能(仅仅拥有访问权限的标识符).
我想知道,在Java和.NET中使用什么算法用于SessionId/AuthenticationToken生成.在具有超过平均安全需求的应用程序中,UUID确实不适合用于这些目的吗?
我正在尝试使用全零生成UUID:
java.util.UUID fromString "00000000-00000000-00000000-00000000"
Run Code Online (Sandbox Code Playgroud)
错误是
java.lang.IllegalArgumentException: Invalid UUID string: 00000000-00000000-00000000-00000000
at java.util.UUID.fromString(UUID.java:194)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想创建"MinValue"或"Invalid"UUID.
我对 JS 很陌生,我想生成一个 UUID。这是我一步一步尝试的:
mkdir testcd testtouch file1.jsfile1.js:let crypto;
try {
crypto = require('crypto');
} catch (err) {
console.log('crypto support is disabled!');
}
var uuid = crypto.randomUUID();
console.log(uuid);Run Code Online (Sandbox Code Playgroud)
你会看到错误。怎么了?我在任何地方都找不到答案。节点 JS 版本:
node -v节目v12.22.9
我想从串口蓝牙设备接收数据到android手机.但我不知道该设备的UUID如何找到该设备的UUID?