//判断是否是base64编码
public boolean isBase64Encode(String value){
if(value == null || () == 0){
return false;
}
if(() % 4 != 0){
return false;
}
char[] chrs = ();
for(char chr:chrs){
if((chr >= 'a' && chr <='z') || (chr >= 'A' && chr <= 'Z') || (chr>='0' && chr <='9') ||
chr == '+' || chr == '/' || chr == '='){
continue;
}else{
return false;
}
}
return true;
}
//将字符转换为Ascii码
public static byte charToByteAscii2(char ch){
byte byteAscii = (byte)ch;
return byteAscii;
}
对于某些字符可能符合base64编码特征,但是却不是base64编码格式,进行进一步判断,如果解码后含有乱码(即Ascii码不在32~126),说明虽然符合base64编码特征,但是不是base64编码,那么保留原始字符串
95个可读字符
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符)
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
if(isBase64Encode(pass)){
try{
String orgpass= pass;
pass = new String(().decode(()));
char[] passArr = ();
for (int i=0; i< ;i++){
if(charToByteAscii2(passArr[i])<32||charToByteAscii2(passArr[i])>126)
{
pass = orgpass;
break;
}
}
}catch(Exception ex){
();
}
}