/**
* TestRandom.java
* create on 2007-6-11
* Copyright 2010 MySteelSoft All Rights Reserved.
*/
package com.test;
import java.util.HashMap;
public class TestRandom {
public static HashMap map=TestRandom.bb();
public static HashMap map1=TestRandom.cc();
public static int randomNum=randomString();
public static HashMap bb(){
HashMap tempMap=new HashMap();
tempMap.put("A",1);tempMap.put("B",2);tempMap.put("C",3);
tempMap.put("D",4);tempMap.put("E",5);tempMap.put("F",6);
tempMap.put("G",7);tempMap.put("H",8);tempMap.put("I",9);
tempMap.put("J",10);tempMap.put("K",11);tempMap.put("L",12);
tempMap.put("M",13);tempMap.put("N",14);tempMap.put("O",15);
tempMap.put("P",16);tempMap.put("Q",17);tempMap.put("R",18);
tempMap.put("S",19);tempMap.put("T",20);tempMap.put("U",21);
tempMap.put("V",22);tempMap.put("W",23);tempMap.put("X",24);
tempMap.put("Y",25);tempMap.put("Z",26);tempMap.put("1",27);
tempMap.put("2",28);tempMap.put("3",29);tempMap.put("4",30);
tempMap.put("5",31);tempMap.put("6",32);tempMap.put("7",33);
tempMap.put("8",34);tempMap.put("9",35);tempMap.put("0",36);
tempMap.put("a",37);tempMap.put("b",38);tempMap.put("c",39);
tempMap.put("d",40);tempMap.put("e",41);tempMap.put("f",42);
tempMap.put("g",43);tempMap.put("h",44);tempMap.put("i",45);
tempMap.put("j",46);tempMap.put("k",47);tempMap.put("l",48);
tempMap.put("m",49);tempMap.put("n",50);tempMap.put("o",51);
tempMap.put("p",52);tempMap.put("q",53);tempMap.put("r",54);
tempMap.put("s",55);tempMap.put("t",56);tempMap.put("u",57);
tempMap.put("v",58);tempMap.put("w",59);tempMap.put("x",60);
tempMap.put("y",61);tempMap.put("z",62);
return tempMap;
}
public static HashMap cc(){
HashMap tempMap=new HashMap();
tempMap.put(1,"A");tempMap.put(2,"B");tempMap.put(3,"C");
tempMap.put(4,"D");tempMap.put(5,"E");tempMap.put(6,"F");
tempMap.put(7,"G");tempMap.put(8,"H");tempMap.put(9,"I");
tempMap.put(10,"J");tempMap.put(11,"K");tempMap.put(12,"L");
tempMap.put(13,"M");tempMap.put(14,"N");tempMap.put(15,"O");
tempMap.put(16,"P");tempMap.put(17,"Q");tempMap.put(18,"R");
tempMap.put(19,"S");tempMap.put(20,"T");tempMap.put(21,"U");
tempMap.put(22,"V");tempMap.put(23,"W");tempMap.put(24,"X");
tempMap.put(25,"Y");tempMap.put(26,"Z");tempMap.put(27,"1");
tempMap.put(28,"2");tempMap.put(29,"3");tempMap.put(30,"4");
tempMap.put(31,"5");tempMap.put(32,"6");tempMap.put(33,"7");
tempMap.put(34,"8");tempMap.put(35,"9");tempMap.put(36,"0");
tempMap.put(37,"a");tempMap.put(38,"b");tempMap.put(39,"c");
tempMap.put(40,"d");tempMap.put(41,"e");tempMap.put(42,"f");
tempMap.put(43,"g");tempMap.put(44,"h");tempMap.put(45,"i");
tempMap.put(46,"j");tempMap.put(47,"k");tempMap.put(48,"l");
tempMap.put(49,"m");tempMap.put(50,"n");tempMap.put(51,"o");
tempMap.put(52,"p");tempMap.put(53,"q");tempMap.put(54,"r");
tempMap.put(55,"s");tempMap.put(56,"t");tempMap.put(57,"u");
tempMap.put(58,"v");tempMap.put(59,"w");tempMap.put(60,"x");
tempMap.put(61,"y");tempMap.put(62,"z");
return tempMap;
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(randomNum);
System.out.println(TestRandom.EncryptStr("BCDE000"));
System.out.println(TestRandom.UntieStr(TestRandom.EncryptStr("BCDE000")));
}
public static final int randomString(){
java.util.Random r=new java.util.Random();
int roandNumber;
roandNumber=(r.nextInt() >>> 1) %37;
return roandNumber==0?1:roandNumber;
}
public static String EncryptStr(String str){
int totalNum;
String tempStr = "";
for(int i=0;i<str.length();i++){
totalNum=(Integer)map.get(String.valueOf(str.charAt(i)))+randomNum;
if(totalNum>62){
totalNum=totalNum-62;
}
if(i==3){
tempStr+=String.valueOf(randomNum);
}
if(i==4){
tempStr+=String.valueOf(randomNum);
}
tempStr+=map1.get(totalNum);
}
return tempStr;
}
public static String UntieStr(String str){
int totalNum;
String tempStr="";
String temp="";
for(int j=0;j<str.length();j++){
if(j==3){
temp+=str.substring(0,3);
}
if(j==5){
temp+=str.substring(temp.length()+String.valueOf(randomNum).length(),temp.length()+String.valueOf(randomNum).length()+1);
}
if(j==6){
temp+=str.substring(temp.length()+(String.valueOf(randomNum).length()*2),str.length());
}
}
if(temp.equals("")){
for(int i=0;i<str.length();i++){
totalNum=(Integer)map.get(String.valueOf(str.charAt(i)))-randomNum;
if(totalNum<1){
totalNum=totalNum+62;
}
tempStr+=map1.get(totalNum);
}
}else{
for(int i=0;i<temp.length();i++){
totalNum=(Integer)map.get(String.valueOf(temp.charAt(i)))-randomNum;
if(totalNum<1){
totalNum=totalNum+62;
}
tempStr+=map1.get(totalNum);
}
}
return tempStr;
}
/**
* 判断字符串是否是A-Z和0-9组成
* @param s
* @return
*/
public static boolean isNumOrStr(String s){
boolean isDorL=true;
byte[] byteStr=s.getBytes();
for(int i=0;i<byteStr.length;i++){
if(!((byteStr[i]>=48&&(byteStr[i]<=57)||(byteStr[i]>=65&&byteStr[i]<=90)))){
isDorL=false;
break;
}
}
return isDorL;
}
}