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. Java输入流

    import java.util.*;  //java为小写public class TEST{ public static void main(String args[]){ Scanner inp ...

  2. 卓越Code第一次作业

    第一次团队作业 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://w ...

  3. scrapy框架爬取糗妹妹网站妹子图分类的所有图片

    爬取所有图片,一个页面的图片建一个文件夹.难点,图片中有不少.gif图片,需要重写下载规则, 创建scrapy项目 scrapy startproject qiumeimei 创建爬虫应用 cd qi ...

  4. 在腾讯CentOS7.4云服务器上安装Docker,在Docker上安装配置MySQL、Tomcat和Nginx

    提示:以下是在腾讯CentOS7.4云服务器上操作. Docker的基本操作:https://www.cnblogs.com/opsprobe/p/10963098.html 一.安装Docker # ...

  5. 《Maven在Java项目开发中的应用》论文笔记(十七)

    标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...

  6. java-we不在esclipse创建servlet之后改名不起作用的问题归纳

    有时候我们不满意类名而去改名,但是改过了之后却发现不能实现它本来该实现的功能了,这是为什么呢,原因就是在2.5里面创建了servlet之后就会在web.xml里生成关于这个servlet的配置,你只是 ...

  7. 微软安全技术Shim

    Shim是微软系统中一个小型函数库,用于透明地拦截API调用,修改传递的参数.自身处理操作.或把操作重定向到其他地方.Shim主要用于解决遗留应用程序在新版Windows系统上的兼容性问题,但Shim ...

  8. Web前端鼠标悬停实现显示与隐藏效果

    css定义,偏移量,相对定位,绝对定位 显示与隐藏 二维码相对于微信图标定位 鼠标悬停微信图标上显示 鼠标离开微信图标时隐藏 什么是定位,就是定义网页标签在运行时显示的位置 css提供Position ...

  9. python3 Paramiko模块学习

    简介 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography). 有了Paramiko以后,我们就可以在Py ...

  10. MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系

    简述关系数据库中表与表的 3 种关系 一对一的关系:例如:一个人对应一个唯一的身份证号,即为一对一的关系. 一对多关系 :例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系 多对多关 ...