栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java随机UUID是否可预测?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java随机UUID是否可预测?

好吧,如果您想知道UUID的随机性,则必须查看源。

以下代码部分摘自OpenJDK7(与OpenJDK6相同):

public static UUID randomUUID() {        SecureRandom ng = numberGenerator;        if (ng == null) { numberGenerator = ng = new SecureRandom();        }        byte[] randomBytes = new byte[16];        ng.nextBytes(randomBytes);        randomBytes[6]  &= 0x0f;          randomBytes[6]  |= 0x40;          randomBytes[8]  &= 0x3f;          randomBytes[8]  |= 0x80;          return new UUID(randomBytes);    }

如您所见,16个字节中只有2个不是完全随机的。在第六个字节中,您丢失8位中的4位,在字节8中,您失去2位随机性。

因此,您将获得具有122位随机性的128位值。

操作可能引起的唯一问题是,很有可能将您的数据识别为UUID。因此,如果您想将其隐藏在其他随机数据中,将无法使用…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号