package com.hongyuan.test;
import java.security.messagedigest;
import java.security.nosuchalgorithmexception;
import java.util.random;
import java.util.uuid;
/*
* 杂项(无符号数转换,字符串补齐,md5,uuid,随机数)
*/
public class sundrytest {
//转成无符号数
public static number tounsignednumber(number num){
if(num instanceof byte){
return (byte)num & 0xff;
}else if(num instanceof short){
return (short)num & 0xffff;
}else if(num instanceof integer){
return (integer)num & 0xffffffffl;
}else{
return -1;
}
}
//左补齐
public static string leftpad(string str,string pad,int len){
string newstr=(str==null?"":str);
while(newstr.length()
newstr=pad+newstr;
}
if(newstr.length()>len){
newstr=newstr.substring(newstr.length()-len);
}
return newstr;
}
//右补齐
public static string rightpad(string str,string pad,int len){
string newstr=(str==null?"":str);
while(newstr.length()
newstr=newstr+pad;
}
if(newstr.length()>len){
newstr=newstr.substring(0, len);
}
return newstr;
}
//md5
public static string md5(string str){
stringbuilder sb=new stringbuilder();
try {
messagedigest digest = messagedigest.getinstance("md5");
byte[] message=digest.digest(str.getbytes());
for(int i=0;i
sb.append(leftpad( //左补齐
integer.tohexstring( //转成16进制数
(integer)tounsignednumber(message[i])), //转成无符号数
"0",2).touppercase()); //转成大写
}
} catch (nosuchalgorithmexception e) {
throw new runtimeexception("不存在md5服务!");
}
return sb.tostring();
}
//uuid
public static string uuid(){
return uuid.randomuuid().tostring().replaceall("-","").touppercase();
}
//随机数(包括min,不包括max)
public static int random(int min,int max){
if(min<=max){
random random=new random();
return random.nextint(max-min)+min;
}else{
throw new illegalargumentexception("无法处理一个不合法的数字区间!");
}
}
public static void main(string[] args){
system.out.println("md5(123456):"+md5("123456"));
system.out.println("uuid:"+uuid());
system.out.println("随机数:"+random(1,100));
}
}