Mega Code Archive

 
Categories / Android / Date Type
 

Base 64 encode 2

//package com.softright; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; public class Base64 {   private static final String BASE_64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";   private static final char CHAR_PAD='=';   public static String encode(byte[] src) {     if(src==null)       return null;     StringBuffer strRet = new StringBuffer();     int i = 0;     int j = 0;     byte[] char_array_3 = new byte[3];     byte[] char_array_4 = new byte[4];          for (int k=0;k<src.length;k++) {       char_array_3[i++] = src[k];       if (i == 3) {         char_array_4[0] = new Integer((char_array_3[0] & 0xfc) >> 2)             .byteValue();         char_array_4[1] = new Integer(((char_array_3[0] & 0x03) << 4)             + ((char_array_3[1] & 0xf0) >> 4)).byteValue();         char_array_4[2] = new Integer(((char_array_3[1] & 0x0f) << 2)             + ((char_array_3[2] & 0xc0) >> 6)).byteValue();         char_array_4[3] = new Integer(char_array_3[2] & 0x3f)             .byteValue();         for (i = 0; (i < 4); i++)           strRet.append(BASE_64_CHARS.charAt(char_array_4[i]));         i = 0;       }     }     if (i > 0) {       for (j = i; j < 3; j++)         char_array_3[j] = '\0';       char_array_4[0] = new Integer((char_array_3[0] & 0xfc) >> 2)           .byteValue();       char_array_4[1] = new Integer(((char_array_3[0] & 0x03) << 4)           + ((char_array_3[1] & 0xf0) >> 4)).byteValue();       char_array_4[2] = new Integer(((char_array_3[1] & 0x0f) << 2)           + ((char_array_3[2] & 0xc0) >> 6)).byteValue();       char_array_4[3] = new Integer(char_array_3[2] & 0x3f).byteValue();       for (j = 0; (j < i + 1); j++) {         strRet.append(BASE_64_CHARS.charAt(char_array_4[j]));       }       while ((i++ < 3)) {         strRet.append(CHAR_PAD);       }     }     try {       return strRet.toString();     } catch (Exception e) {       return null;     }   }   @SuppressWarnings("unchecked")   public static byte[] decode(String src) {     String strEncoded = null;     try {       strEncoded = src;//java.net.URLDecoder.decode(src, "iso-8859-1");       if(strEncoded==null) return null;     } catch (Exception e) {       return null;     }     int in_len = strEncoded.length();     int i = 0;     int j = 0;     int in_ = 0;     List ret = new ArrayList();     byte[] char_array_3 = new byte[3];     byte[] char_array_4 = new byte[4];     while ((in_len-- > 0) && (strEncoded.charAt(in_) != CHAR_PAD)) {       char_array_4[i++] = (byte) strEncoded.charAt(in_);       in_++;       if (i == 4) {         for (i = 0; i < 4; i++)           char_array_4[i] = new Integer(BASE_64_CHARS               .indexOf(char_array_4[i])).byteValue();         char_array_3[0] = new Integer((char_array_4[0] << 2)             + ((char_array_4[1] & 0x30) >> 4)).byteValue();         char_array_3[1] = new Integer(((char_array_4[1] & 0xf) << 4)             + ((char_array_4[2] & 0x3c) >> 2)).byteValue();         char_array_3[2] = new Integer(((char_array_4[2] & 0x3) << 6)             + char_array_4[3]).byteValue();         for (i = 0; (i < 3); i++)           ret.add(new Byte(char_array_3[i]));         i = 0;       }     }     if (i > 0) {       for (j = i; j < 4; j++)         char_array_4[j] = 0;       for (j = 0; j < 4; j++)         char_array_4[j] = new Integer(BASE_64_CHARS             .indexOf(char_array_4[j])).byteValue();       char_array_3[0] = new Integer((char_array_4[0] << 2)           + ((char_array_4[1] & 0x30) >> 4)).byteValue();       char_array_3[1] = new Integer(((char_array_4[1] & 0xf) << 4)           + ((char_array_4[2] & 0x3c) >> 2)).byteValue();       char_array_3[2] = new Integer(((char_array_4[2] & 0x3) << 6)           + char_array_4[3]).byteValue();       for (j = 0; (j < i - 1); j++)         ret.add(new Byte(char_array_3[j]));     }     byte[] rlt = new byte[ret.size()];     //int k = 0;     for (int k=0;k<ret.size();k++) {       rlt[k] = ((Byte)ret.get(k)).byteValue();     }     return rlt;   }   public static void main(String[] args)   throws Exception   {          File file=new File("c:\\test.dat");     file.createNewFile();     FileOutputStream out=new FileOutputStream(file);     out.write((decode("EgAHAAAAAAAAAAAAAACqDwAABgIEAFAATgBHADMAywWJUE5HDQoaCgAAAA1JSERSAAAAMAAAADAIAgAAANhgbtAAAAAEZ0FNQQAAsY8L/GEFAAAFgklEQVRYR+2W308cVRTH75OvRpuCBjT2gcS/wUjigz8fmjZ9sTUajTQmajU+tNkaG3XTRItFH5RK1AoGjSKGWuKPLtFCslW0GCiV0vKbhZn9we6yu/zoVigwfs+cmbPDIC0zgPrAzQlh79x77uee8z1nRqmtsRWBrQj8/yLwTWNjzh7xWGxkZLirs7O9/de2ttaW0Jnm5tNYAAscOvgvseOwgbK7xOa7FWz2tJqsvsM5v/FAzoOvtRXOQyScBxtXCYiZnPOf1dU5oV3EfoJ3/vzv4hGngol/9l665AISptWAeIGT2A8QdOIEglP+6ZzHT8yvBYjXiEM/QM6U8ansbo2iXrl9A4Cyn9yWPFYCy9WThsaeKoHhpMxH21JVpYnX74RNN6hs7S14Sgv23T266x7Y8EM7IGrXdvaAp333lvmJ0Jkff5j5VrFTpB9M0ReK4RHzU18qYQKQMGn7C0wAcm2XK4HJD9C5cHiuXbFTKBpM8UARmDAPIGGa/Y6AmCl6oFiYjldWurbLlXArP0AXu7vhkZ0CCIZQgQnzV78nIGYiVpsJQMKEsndtlyv5BEI1LUYICAY9MhBsLBLBjDDN/0GPmCl+sEiYAOTaLldCmP1ECECoLHa6pBET6wnzC1dokpkW+pUwQePCBCDXdgbS2z5EmP0DsVP8BRPriYGECUDCxHXHTAzk3J4Yro92nATQzsce9QPEe9CvGQgmQMYEATHTUpyAmEl6AZhw6rbtRbw9Fg0lYk0T4wTU8FWDfxreybljQzHjGLQiYaLg2UzSC5iGTdN1Cyhef/Zs6/sfVK8XCEcyE0Qgx7S0hJiJQZmJ667imad52ZW+/s6uC1E9rOlRRCjeV3/y01oAHXvn+BtvBg8FDr/40svPVux/fN8TO3ftfvDhR+67v3xVVgnJzCk6b+oLNdNEQM55pAMmM2ACEIcQk5Gx8fGxPi3SqQ2E9cuhaC8BpRI16Ymq9EBwsj+Q/O2AB6DC2albEQnYUkwtDKj5TjXXQVi5Oitag4ODwoRmCBqgsBHQeFdUC8e0UFxrSozWTwzWJPsJKBEOeIsQd0Iju8fIlCMv+Z9U7nOVerc0frgYdr2nkD5JKMpKcop/CGh8SNN69Eg4OhDSe5q0jkattVZrOZEeDKYuegSiTE1XEFB2jxPIquQh9dcvCms4ocxk3YG/Ri7Qo7HRPk3r/Qeg/mA25QXISsHsK8IkEZr+2iJYNJkyH98O6SyOki1cJgh0S94OpskTxbhPVOuK6ecSenMhQiPBbCwwlV6bhkQQRv6IYTMJEMLATHh1G0lFNl9NNvM8DF0RIsv/TAuwjIDMMDtTltarWI4MDbvJgFqt4APIZHKmjB8RTabcSJUREEteU9f/VMm3ShAnFr6Fbl6J7yMR4hLBApy1pmEBzVUSUP7ISiAju5uAEJjMA4aUoUZAnDswgY/KYvl2FAREDSA+wsNAJMmdzSQpg0qgGyP3JDHl9pI5mNLvlYqewEQvsiFqnq4ixR1unikXrCRYmKQ=")));     out.close();   } }