Java中生成一个唯一值的方式

现总结几种生成一个唯一值的方式

第一种:采用nanoTime()

// 理论上存在重复的可能,可以在后面再加上一个随机字符串
Random r = new Random();
    for (int i = 0; i < 100; i++) {
        String n = System.nanoTime() + "" + r.nextInt();
        System.out.println(n);
    }

第二种:采用UUID类

// 第二种:采用UUID类
for (int i = 0; i < 100; i++) {
        String s = UUID.randomUUID().toString();
        System.err.println(s);
}

第三种:采用数据指纹

for (int i = 0; i < 100; i++) {
        String s = UUID.randomUUID().toString();
        // 先进行MD5加密
        MessageDigest md = MessageDigest.getInstance("md5");
        // 对数据进行加密
        byte[] bs = md.digest(s.getBytes());

        /*
         * BASE64Encoder所在包的引入方式(Eclipse): 在Java Build Path下的
         * Libraries中拉开JRE,然后点击 第一个选项Access rules(双击),然后点击add,在上面的框中选择
         * Accessible,下面输入**,保存即可引入相应的包。
         * 
         * BASE64Encoder底层实现原理:三字节变四字节
         */
        // 采用数据指纹进一步加密,拿到数据指纹
        BASE64Encoder base = new BASE64Encoder();
        // 进一步加密
        String str = base.encode(bs);

    }
posted @ 2015-12-28 16:48  末日没有进行曲  阅读(956)  评论(0编辑  收藏  举报