package com.feinar.cbs.common;
import java.util.Random;
import java.util.UUID;
public class GUID {
private static int index = 0;
private static final GUID instance = new GUID();
public static GUID getInstance() {
return instance;
}
private final static int intMax = 24;
private final static char[] ch = { 'A', 'B', 'C', 'E', 'F', 'K', 'M', 'P', 'Q',
'R', 'T', 'U', 'W', 'Z', '1', '2', '3', '4', '5', '6', '7', '8',
'9', '0' };
private int getNum(char schar) {
switch (schar) {
case 'A':
return 1;
case 'B':
return 2;
case 'C':
return 3;
case 'D':
return 4;
case 'E':
return 5;
case 'F':
return 6;
case 'K':
return 7;
case 'M':
return 8;
case 'P':
return 9;
case 'Q':
return 0;
case 'R':
return 10;
case 'T':
return 11;
case 'U':
return 12;
case 'W':
return 13;
case 'Z':
return 14;
case '1':
return 15;
case '2':
return 16;
case '3':
return 17;
case '4':
return 18;
case '5':
return 19;
case '6':
return 20;
case '7':
return 21;
case '8':
return 22;
case '9':
return 23;
case '0':
return 24;
default:
return 1;
}
}
// 得到前N-1位随机数
private String getRanstr(int intLength) {
Random rd = new Random();
rd.setSeed(System.currentTimeMillis()+index);
if(index>100){
index=0;
}else{
index++;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < intLength; i++) {
sb.append(ch[rd.nextInt(intMax)]);
}
return sb.toString();
}
// 得到最后一位数
private String getLast(String strs) {
int sum = 0;
for (int i = 0; i < strs.length(); i++) {
int nums = getNum(strs.charAt(i));
sum += nums * i;
}
int k = sum % 11;
if (k == 0) {
return String.valueOf(0);
}
if (k == 10) {
return "X";
}
return String.valueOf(k);
}
// 取得16随机数
public String get16() {
String str = getRanstr(15);
str = str.concat(getLast(str));
return str;
}
// 取得12随机数
public String get12() {
String strg = getRanstr(11);
strg = strg.concat(getLast(strg));
return strg;
}
public static void main(String[] args) {
System.out.println(getInstance().get16());
// UUID uuid = UUID.randomUUID();
// System.out.println(uuid);
}
}
分享到:
相关推荐
Unity生成设备唯一UUID,代码+样例
Android生成唯一标识符UUID(完全替代IMEI),项目真实有效。
读取设备的UUID(Universally Unique Identifier)并通过KeyChain记录。
C++代码,VS工程,在windows x86...通过获取PC的CPU id字符串,以这个字符串作为种子,生成唯一性的UUID。这个UUID可以用作PC的唯一性标识,或者身份认证的标识。UUID不同CPU不会重复,但相同CPU下每次的UUID值都一样。
MFC获得主板BIOS的UUID,C++获取主板bios序列号,传统方法几乎都是通过程序模拟CMD命令行输入wmic csproduct get UUID获得,这种方法在代码中要第二次以上才得到,本程序是用 C++ 实现 WMI 编程的基本步骤,在这里,...
iOS获取唯一标识,在不刷机的前提下,无论多次获取,还是卸载后重装程序,获取的 uuid 都不会发生改变
根据电脑硬件信息生成唯一的序列号,不依赖于任何第三方组件,包括:硬盘的卷标号、硬盘ID、CPU的序列号、网卡硬件地址、IP地址、登录用户名、计算机名、PC类型、物理内存。
主板序列号修改,超级简单
简单的uuid生产代码 uuid生产代码 uuid生产代码
uuid生成,可生成16个字符的唯一码。使用方法,见main函数
java生成唯一索引,Long型,区别uuid
PHP实现生成统一唯一标识符UUID 一、开发环境 1、环境搭建:Windows 8+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0 。 2、文本编辑器:Sublime Text3。 二、主要技术 本实验主要使用PHP字符串处理函数生成一个UUID。
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码...
主板UUID修改工具5.13
1、ThinkPad 1.89版,适用于大部分机型 2、ThinkPad UEFI版,适用于大部分支持UEFI BIOS机型,以及部分平板机型X1 Helix 1代(3697等)、X1 Helix 2代(20CG等),无需配合1.89版刷号,直接可以引导刷号,确保U盘为...
java 生成8位UUID,解决UUID2太长的问题,欢迎下载。后续代码,陆续放出
精品软件工具--Hackintosh三码拷贝工具 所谓三码就是ROM,序列号,以及系统UUID这三者,用于提供身份令牌
NULL 博文链接:https://jarorwar.iteye.com/blog/553875
利用UUID生成完全不重复的数字 package com.example.uuid; import java.util.UUID; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View....
python 实现查询mysql数据并发送邮件