• URLDoBase64


    import java.io.IOException;

    import java.io.UnsupportedEncodingException;

    import java.net.URLDecoder;

    import java.net.URLEncoder;

    import org.apache.log4j.Logger;

    import sun.misc.BASE64Decoder;

    import sun.misc.BASE64Encoder;

    public class URLDoBase64 {

       private static final Logger LOG = Logger.getLogger(URLDoBase64.class);

        /**

         * 对base64编码的字符进行编码处理,以便于http传播 处理规则 ? (AAA) & (BBB) = (CCC) / (DDD) , (EEE) + (FFF) % (GGG) <

         * (HHH) > (III) # (JJJ)

         *

         * @param str

         * @return

         */

        public static String enURL(String str) {

             String sbase64=null;

            try {

               sbase64 = Base64.encode(str.getBytes("UTF-8"));

            } catch (UnsupportedEncodingException e) {

               e.printStackTrace();

            }

             return sbase64.replaceAll("\?", "\(AAA\)").replaceAll("&", "\(BBB\)").replaceAll("=", "\(CCC\)").replaceAll("\/", "\(DDD\)").replaceAll(",", "\(EEE\)").replaceAll("\+", "\(FFF\)").replaceAll("%", "\(GGG\)").replaceAll("<", "\(HHH\)").replaceAll(">", "\(III\)").replaceAll("#", "\(JJJ\)").replaceAll(" ", "\(KKK\)");

           }

           /**

            * 对base64编码的字符进行解码处理 处理规则 ? (AAA) & (BBB) = (CCC) / (DDD) , (EEE) + (FFF) % (GGG) < (HHH) >

            * (III) # (JJJ)

            *

            * @param str

            * @return

            */

           public static String deURL(String str) {

            String re=str.replaceAll("\(AAA\)", "?").replaceAll("\(BBB\)", "&").replaceAll("\(CCC\)", "=").replaceAll("\(DDD\)", "/").replaceAll("\(EEE\)", ",").replaceAll("\(FFF\)", "+").replaceAll("\(GGG\)", "%").replaceAll("\(HHH\)", "<").replaceAll("\(III\)", ">").replaceAll("\(JJJ\)", "#").replaceAll("\(KKK\)", " ");

            byte [] bBase64 = Base64.decode(re);

            String s=null;

            try {

               s = new String(bBase64,"utf-8");

            } catch (UnsupportedEncodingException e) {

               e.printStackTrace();

            }

            return s;

           }

        public static void main(String[] args)

        {

          byte[] data={(byte) 0xfb,(byte)0xf0,(byte)0x01};

         

          String encodeBase64 = new BASE64Encoder().encode(data);

          String safeBase64Str = encodeBase64.replace('+', '-');

          safeBase64Str = safeBase64Str.replace('/', '_');

          safeBase64Str = safeBase64Str.replaceAll("=", "");     

         

          String s ="55(FFF)t5L(FFF)h57yW56CB5LiN6IO95Li656m6";

          System.out.println(deURL(s));

           

           

         

         

        }

    }

  • 相关阅读:
    Linux目录
    find命令
    107. Binary Tree Level Order Traversal II
    grep命令
    110. Balanced Binary Tree
    111. Minimum Depth of Binary Tree
    什么是泛型
    自动装箱与拆箱
    HDU 3001 Travelling (状压DP + BFS)
    POJ 3411 Paid Roads (状态压缩+BFS)
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10400429.html
Copyright © 2020-2023  润新知