Android编程加密算法小结(AES、Base64、RAS加密算法)

2019-12-10 19:52:17丽君
  • | (((int) data[i + 2]) & 0x0ff);  buf.append(legalChars[(d >> 18) & 63]); 
  • buf.append(legalChars[(d >> 12) & 63]);  buf.append(legalChars[(d >> 6) & 63]); 
  • buf.append(legalChars[d & 63]);  i += 3; 
  • if (n++ >= 14) {  n = 0; 
  • buf.append(" ");  } 
  • }  if (i == start + len - 2) { 
  • int d = ((((int) data[i]) & 0x0ff) << 16)  | ((((int) data[i + 1]) & 255) << 8); 
  • buf.append(legalChars[(d >> 18) & 63]);  buf.append(legalChars[(d >> 12) & 63]); 
  • buf.append(legalChars[(d >> 6) & 63]);  buf.append("="); 
  • } else if (i == start + len - 1) {  int d = (((int) data[i]) & 0x0ff) << 16; 
  • buf.append(legalChars[(d >> 18) & 63]);  buf.append(legalChars[(d >> 12) & 63]); 
  • buf.append("==");  } 
  • return buf.toString();  } 
  • private static int decode(char c) {  if (c >= 'A' && c <= 'Z') 
  • return ((int) c) - 65;  else if (c >= 'a' && c <= 'z') 
  • return ((int) c) - 97 + 26;  else if (c >= '0' && c <= '9') 
  • return ((int) c) - 48 + 26 + 26;  else 
  • switch (c) {  case '+': 
  • return 62;  case '/': 
  • return 63;  case '=': 
  • return 0;  default: 
  • throw new RuntimeException("unexpected code: " + c);  } 
  • }  public static byte[] decode(String s) { 
  • ByteArrayOutputStream bos = new ByteArrayOutputStream();  try {