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. beta版本——第四次冲刺

    第四次冲刺 (1)SCRUM部分☁️成员描述: 姓名 李星晨 完成了哪个任务 进行注册的时候若不输入手机号,提醒用户的是未输入登录名,进行更改 花了多少时间 1.2h 还剩余多少时间 1.8h 遇到什 ...

  2. admin端的教师管理功能测试

    1  概述 1.1   测试范围 本次所测试的内容是admin端的教师管理功能. 1.2   测试方法 采用黑盒子方法进行集成测试. 1.3   测试环境 (1)   服务器l  操作系统:Windo ...

  3. ThinkPHP模板之一

    这个东东,就得多练多写,无它法. 1,Application\Home\Controller\IndexController.class.php <?php namespace Home\Con ...

  4. python图像处理库Pillow基本使用方法

    安装pillow pillow的文档页面,documentation of Pillow 生成一个有单一颜色的图像 from PIL import Image, ImageDraw img = Ima ...

  5. c#3.0 Lambda 表达式

    使用c# 2.0 中的匿名方法查找“内部包含abc子串的所有字符串”: list.FindAll( delegate(string s) { renturn s.indexof("abc&q ...

  6. JQuery系列(4) - AJAX方法

    jQuery对象上面还定义了Ajax方法($.ajax()),用来处理Ajax操作.调用该方法后,浏览器就会向服务器发出一个HTTP请求. $.ajax方法 $.ajax()的用法主要有两种. $.a ...

  7. Laravel —— 多模块开发

    Laravel 框架比较庞大,更适用于比较大的项目. 为了整个项目文件结构清晰,不同部分分为不同模块很有必要. 一.安装扩展包 1.根据不同 Laravel 版本,选择扩展包版本. packagest ...

  8. 启用Microsoft loopback Adapte

    开始▶控制面板▶系统   系统▶设备管理器   此时,点击操作的菜单是没有有用子菜单的,需要点击一下网络适配器.   再点击操作▶添加过时硬件   添加硬件向导▶下一步   安装我手动从列表选择的硬件 ...

  9. fitnesse的安装

    最近项目组有个单独的功能模块需要写自动化,由于是测试接口,我本来是想用之前那个项目组使用的robot framework+python,但是呢,项目组领导觉得,目前项目开发语言是java,相应的自动化 ...

  10. 《OKR工作法》–让所有人承担自己的职责

    <OKR工作法>中提到了一个创业故事,TeaBee,创业的目标是让喜欢喝茶的人喝到好茶. 创业初期作为首席执行官的汉娜和作为总裁的杰克就在将茶叶提供给餐厅还是餐厅供应商上产生了分歧,随后他 ...