Posted on 2008-10-15 10:17
龙旋风 阅读(271)
评论(0) 编辑 收藏
加密:
public String encrypt(String a1) {
//long is 12
int num=0;
String str = a1.toLowerCase();
String str1 ="";
if(str==null || str =="")
return null;
int length = str.length();
int tlen = 12 -length;
for(int i=0;i<tlen;i++){
num=2*i+1;
if(i==0)
str1 = str1+"A";
else
str1 = str1+(char)((int)str1.charAt(0)+num);
}
if(tlen>=0){
for(int j=0;j<length;j++){
if(checkInteger(str.substring(j,j+1))){//This String is Integer
int integer = Integer.parseInt(str.substring(j,j+1))+3;
if(integer==10){str1=str1+String.valueOf("X");}else
if(integer==11){str1=str1+String.valueOf("Y");}else
if(integer==12){str1=str1+String.valueOf("Z");}else{
str1 =str1+String.valueOf(integer);
}
}else{//This String is not Integer
if(str.substring(j,j+1).equals("x")){str1=str1+"0";}else
if(str.substring(j,j+1).equals("y")){str1=str1+"1";}else
if(str.substring(j,j+1).equals("z")){str1=str1+"2";}else{
int str_integer = (int)str.charAt(j)+3;
char c_str =(char)str_integer;
str1=str1+c_str;
}
}
}
}else{
this.bulidError("encrypt", "long is over 12!");
return null;
}
return str1;
}
解密:
public String desecrypt(String str){
int num=0;
String tempStr = "";
String str1 ="";
if(str==null||str=="")
return null;
int length = str.length();
for(int i=0;i<length;i++){
num = 2*i+1;
String str2 = str.substring(i,i+1);
if(checkInteger(str2)){
if(str2.equals("0")){str1 =str1+"x";}else
if(str2.equals("1")){str1 =str1+"y";}else
if(str2.equals("2")){str1 =str1+"z";}else{
int integer = Integer.parseInt(str2)-3;
str1 =str1+String.valueOf(integer);
}
}else{
if(str2.equals("A") && i==0){
tempStr="A";
}else if(str2.equals("A") && i!=0){
this.bulidError("desecrypt", "A must be in the first place!");
}
if(str2.equals("X")){int integer = 10-3;
str1 =str1+String.valueOf(integer); continue;}else
if(str2.equals("Y")){int integer = 11-3;
str1 =str1+String.valueOf(integer); continue;}else
if(str2.equals("Z")){int integer = 12-3;
str1 =str1+String.valueOf(integer); continue;}else
if(tempStr!="" && !str2.equals("A")){
if(((int)str2.charAt(0)-(int)tempStr.charAt(0))==num){
}else
tempStr="";
}
if(tempStr.equals("")||tempStr==""){
int i_str = (int)str2.charAt(0)-3;
char c_str = (char)i_str;
str1=str1+c_str;
}
}
}
return str1;
}