public class Generator {

    private static char[] BASE64 = "abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789".toCharArray();

    public static String generateUUID() {
UUID uuid = UUID.randomUUID();
char[] chs = new char[22];
long most = uuid.getMostSignificantBits();
long least = uuid.getLeastSignificantBits();
int high = (int)((most >> 13) ^ (least >> 31)) & 0x3c;
int k = chs.length - 1;
for(int i = 0; i < 10; i++, least >>>= 6) {
chs[k--] = BASE64[(int)(least & 0x3f)];
}
chs[k--] = BASE64[(int)((least & 0x3f) | (most & 0x30))];
most >>>= 2;
for(int i = 0; i < 10; i++, most >>>= 6) {
chs[k--] = BASE64[(int)(most & 0x3f)];
}
chs[k--] = BASE64[(int)(high | most)];
return new String(chs);
}
}

UUID 压缩为22位的更多相关文章

  1. GUID获取16位19位22位的唯一字符串

    /// <summary> /// 根据GUID获取16位的唯一字符串 /// </summary> /// <param name=\"guid\" ...

  2. Java通过UUID随机生成36位、32位唯一识别码(唯一字符串)

    import java.util.UUID; /** * 通过UUID随机生成36位.32位唯一识别码(唯一字符串) * @author [J.H] * */ public class Test { ...

  3. uni-app图片压缩转base64位 利用递归来实现多张图片压缩

    //选择图片 chooseImage(){ let that =this uni.chooseImage({ sizeType: ['original','compressed'], //可以指定是原 ...

  4. 利用UUID 随机生成8位短号

    //获得8位短号 public static String[] chars = new String[] { "a", "b", "c", ...

  5. 将MD5值压缩成8位32进制生成8位长度的唯一英文数字组合字符串

    function str16to32($a){ for($a = md5( $a, true ), $s = '0123456789ABCDEFGHIJKLMNOPQRSTUV', $d = '', ...

  6. Base64压缩UUID长度替换Hibernate原有UUID生成器

    本文来自http://my.oschina.net/noahxiao/blog/132277,个人储藏使用 1.背景 在采用Hibernate做对象映射时,我一直都采用UUID来做主键.由于Hiber ...

  7. nrf51822-使用16位自定义UUID

    以 ble_app_uart为例 工程中创建的nus服务以及其中的两个特性值都是128位的UUID.nordic sdk中使用128位UUID的方式和标准128UUID类似,它是提供一个基准UUID, ...

  8. Java中获取32位UUID

    public class createUUID { public static void main(String[] args) { String uuid = UUID.randomUUID().t ...

  9. UUID 生成32位随机串

    java通过jdk自带的UUID,生成32位的随机串 private static String generate_UUID() { UUID uuid=UUID.randomUUID(); Stri ...

随机推荐

  1. PostgreSQL递归查询

    原料 --创建组织架构表 create table "Org"( "OrgId" ) primary key, "ParentId" ), ...

  2. DevExpress GridControl使用教程:之 添加 checkbox 复选框

    添加一列,FieldName为"FLAG",将ColumnEdit设置为复选框样式. gridview1   =>optionsbehavior =>  editabl ...

  3. 【C#】在datatable中添加一序号列,编号从1依次递增,并且在第一列

    详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak/// <summary> ...

  4. windows server 2008 站点系列--AD的站点建立与子网的管理(zhuanzai)

    本次课程将给大家介绍AD中站点和子网的功能.站点和子网之间的关联,以及相关的设置步骤. 应用背景介绍: contoso公司的总部在西安(Xian),陕南的汉中(Shannan)和陕北的榆林(Shanb ...

  5. Prim算法---最小生成树

    最小生成树的Prim算法也是贪心算法的一大经典应用.Prim算法的特点是时刻维护一棵树,算法不断加边,加的过程始终是一棵树. Prim算法过程: 一条边一条边地加, 维护一棵树. 初始 E = {}空 ...

  6. redis-cluster 集群搭建

    redis 准备 下载:https://redis.io/download 下载解压后的地址: /Users/sam/soft/redis-4.0.2 redis-cluster 3master 3 ...

  7. js正则包含三位

    var reg = new RegExp("^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z_\\W]+$)(?![a-z\\d]+$)(?![a-z_\\W]+$) ...

  8. Rabbitmq 消息对列 生产者与消费者的具体实现 springboot

    RabbitMQ 基本介绍 RabbitMQ的设计理念是.只要有接收消息的队列. 邮件就会存放到队列里. 直到订阅人取走. . 如果没有可以接收这个消息的消息队列. 默认是抛弃这个消息的.. 我实现的 ...

  9. leetcode-374-Guess Number Higher or Lower(二分查找)

    题目描述: We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have t ...

  10. POJ 2196

    #include <iostream> using namespace std; int sum_10; int sum_12; int sum_16; int fun_10(int nu ...