生成较短的UUID

好记性不如烂笔头啊,还是记录一下!


不知道有没有同学和我感觉一样,系统生成的UUID在某些场景下觉得有点长,有点臃肿
UUID都是128位的长度:{1DAF9E46-26F6-4F52-BBA5-422FD0E09270}
怎么把他变短一些呢?


1. 去掉不必要的修饰符

通过去掉无意义的括号和减号来较少长度:

var uuid = Guid.NewGuid().ToString("N");

这样字符串就成为1daf9e4626f64f52bba5422fd0e09270感觉还是蛮长的。


2. 使用Base64编码来表示

前面的表示方法中,是使用的16机制来表示的,如果使用Base64编码的话,则可以进一步压缩字符串

var uuid = Convert.ToBase64String(guid.ToByteArray()).TrimEnd('=');

这样字符串就成为Ivj6eZRx40+MTx2ZvnG8nA看起来稍微好一点了。


3. 进行转换

long i = 1;
foreach (byte b in Guid.NewGuid().ToByteArray())
    i *= ((int)b + 1);
var uuid = string.Format("{0:x}", i - DateTime.Now.Ticks);

这样字符串就成为dfbf66216b6d506c看起来更短了一些,感觉舒服多了就先这么用着了。


以上说法只是我的个人理解,如有不对,欢迎留言指正。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 在软件的编码和实现中,我们可能会碰到个一个比较头疼的问题--编码,不同字符间的编码和解码,你确定了解各种字符的编码...
    Java小铺阅读 2,544评论 0 5
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,098评论 0 1
  • 一年终事了, 我心轻巧巧。 此聚一别后, 来日怎敢料。
    梦吟九洲阅读 212评论 0 0
  • “你都30岁了,你怎么还没有结婚,你起码谈个恋爱啊” “爸,你怎么看不结婚这个想法?”我问。“EMM~不...
    洛夕_阅读 437评论 0 1