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));

}

}

URLDoBase64的更多相关文章

随机推荐

  1. A quick introduction to Google test

    视频参考:Google C++ Testing GTest GMock Framework 为什么要使用 Google C++ Testing Framework? 使用这个框架有许多好理由.本文讨论 ...

  2. ab 接口压力测试工具使用

    安装: yum install httpd-tools 使用: ab -n 1000 -c 100 http://www.baidu.com/; -n 总的请求数;  -c 并发数; -k 是否开启长 ...

  3. web页面死链测试方法

    一.概述 > 来自百度百科释义 死链:指服务器的地址已经改变了.无法找到当前地址位置,包括协议死链和内容死链两种形式.死链出现的原因有网站服务器设置错误:某文件夹名称修改,路径错误链接变成死链等 ...

  4. Linux跑脚本用sh和./有什么区别?

    一个很有意思的例子: sh是一个shell.运行sh a.sh,表示我使用sh来解释这个脚本:如果我直接运行./a.sh,首先你会查找脚本第一行是否指定了解释器,如果没指定,那么就用当前系统默认的sh ...

  5. nginx证书配一波

    nginx下,拿到crt和key就可以开始干~ 同一个nginx,多个域名,没问题. server { listen 80; listen 443 ssl; server_name www.xxx.c ...

  6. 爬虫 - 请求库之selenium

    介绍 官方文档 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的 ...

  7. 用Wget下载的文件在哪里可以找到。。

    输入命令: cd ~ 然后 ls 就ok了.

  8. asp.net Web 项目的文件/文件夹上传下载

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  9. C++中继承 声明基类析构函数为虚函数作用,单继承和多继承关系的内存分布

    1,基类析构函数不为虚函数 #include "pch.h" #include <iostream> class CBase { public: CBase() { m ...

  10. testinfra 基础设施测试工具

    testinfra 是基于python 开发的基础设施测试工具,我们可以用来方便的测试基础设施 是否符合我们的要求(系统,软件...) 一个参考demo   def test_passwd_file( ...