长度短点的uuid_如何减少使用randomUUID()生成的UUID的长度
Peter Lawrey..
29
如果您不需要它是唯一的,您可以使用任何你喜欢的长度.
例如,您可以这样做.
Random rand = new Random();
char[] chars = new char[16];
for(int i=0;i
chars[i] = (char) rand.nextInt(65536);
if (!Character.isValidCodePoint(chars[i]))
i--;
}
String s = new String(chars);
这将给你几乎相同程度的随机性,但将使用\u0000和之间的每个可能的字符\ufffd
如果您需要可打印的ASCII字符,可以根据需要缩短,但唯一性的可能性会显着下降.可以做的是使用底座36而不是底座16
UUID uuid = UUID.randomUUID();
String s = Long.toString(uuid.getMostSignificantBits(), 36) + '-' + Long.toString(uuid.getLeastSignificantBits(), 36);
这将平均26个字符,最多27个字符.
您可以使用base64编码并将其减少为22个字符.
如果你使用base94你可以得到20个字符.
如果你使用\ u0000到\ ufffd的整个有效字符范围,你可以将它减少到只有9个字符或17个字节.
如果您不关心字符串,则可以使用16位,8位字节.
长度短点的uuid_如何减少使用randomUUID()生成的UUID的长度相关推荐
- 长度短点的uuid_更短且不失高效的UUID生成算法
Java原生的UUID长度为36位,嫌长 这里自己实现了一套自己的算法,来生成较短的UUID 由雪花算法启发而来, 大致原理是利用时间戳+随机值做值,然后转换成62进制(当然这个进制数你也可以搞成更多 ...
- 长度短点的uuid_如何压缩UUID长度?
二. 代码编写 private static String compressUUID(UUID uuid) { StringBuilder resultBuilder = new StringBuil ...
- 长度短点的uuid_UUID不失精度,长度改进
在使用到uuid的时候,往往头疼于它的长度(如1bfe50d8-544e-4e8a-95b8-199ceff15268),于是乎就有了改写uuid的各种方法 1.去除"-"的uui ...
- 长度短点的uuid_Python生成短uuid的方法实例详解
python的uuid都是32位的,比较长,处理起来效率比较低, 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62 ...
- uuid设置长度_转发 微博 Qzone 微信 分布式系统ID的生成方法之UUID、数据库、算法、Redis、Leaf方案...
点击上方「蓝字」关注我们 前言 一般单机或者单数据库的项目可能规模比较小,适应的场景也比较有限,平台的访问量和业务量都较小,业务ID的生成方式比较原始但是够用,它并没有给这样的系统带来问题和瓶颈,所以 ...
- 转:短网址(short URL)的实现_如何生成短链接URL?
什么是短链接 ? 就是把普通网址,转换成比较短的网址.比如:这种http://t.cn/ E70Piib,在微博这些限制字数的应用里.好处不言而喻:短.字符少.美观.便于发布.传播. 我们应该都能想到 ...
- java sessionid长度_php中session_id()函数详细介绍,会话id生成过程及session id长度
php中session_id()函数原型及说明session_id()函数说明:stringsession_id([string$id])session_id() 可以用来获取/设置 当前会话 ID. ...
- 增大表名最大长度_风电叶片材料的发展变迁史,及风力发电机叶片长度发展历程...
2020年,能源领域最火的行业是风电,由于中国出台相关文件,截止12月31日为止,之后装机并网的风电机组将不能够获得电价补贴. 这个政策直接推动了国内风电市场的短期井喷.当然宏观因素背景是中国对于环保 ...
- 设计一个长方形类。成员变量包括:长度和宽度,成员函数除包括计算周长和计算面积外, 还包括用set方法来设置长方形的长度和宽度,以及用get的方法来获得长方形的长度和宽度 最后,编写一个测试程序来测试所
本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2020年11月22日发表于BLOG上 本BLOG上原创文章未经本人许可,不得用于商业用途.转载请经允许后注明出处,否则保留追究法 ...
最新文章
- Docker(二):Docker 容器使用
- Java学习笔记32
- 液晶字体数字一到九_睡前必听3分钟系列十一:光传输设备和同步数字体系的特点...
- 在Ubuntu上为Android系统编写Linux内核驱动程序
- Python之方法调用
- 【转】简述TCP的三次握手过程
- 翻译 github上How to be a good programmer
- tracert路由检测命令使用方法
- css-背景图片和渐变
- linux删除php文件权限不够,linux - 用php的exec()删除目录文件提示权限不够
- @Value取值为NULL的解决方案
- 第15组构建之法团队心得
- java导入功能超时问题
- c语言串逐位和 思路,蓝桥杯c语言练习题答案.doc
- 前端安全 XSS跨站脚本攻击-CSRF跨站请求伪造攻击
- 台式机计算机怎么分割,台式机如何设置分屏
- mysql获取某个最大的值的一行数据_某一字段分组取最大(小)值所在行的数据
- 普歌-码上鸿鹄团队:在Nuxt(vue)渲染模板中使用mock.js随机生成数据
- linux上命令调用smplayer,Linux播放器——RedHat下MPlayer和SMPlayer的安装
- 本机号码校验不只是免输密码、免输短信验证码