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)); } } |
URLDoBase64的更多相关文章
随机推荐
- uiautomator2+python自动化测试1-环境准备
前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库.功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点 ...
- 使用Visual studio查看exe或DLL文件的依赖项
事先准备:只要 Visual Studio 任何版本即可. 点击开始 -> 程序 -> Visual Studio对应的版本,打开Visual Studio Tools -> 选择 ...
- Linux UART介绍
1. UART介绍 UART是一类tty设备, 是一种串行端口终端, 具体可参考<UART接口介绍>在Linux中UART属于tty驱动的一部分, 具体实现包括驱动抽象层和硬件实现层 本文 ...
- 实用的Python库
一.Django 1.自动实现图片压缩: pip install easy-thumbnails / https://pypi.org/project/easy-thumbnails/2.实现定时任务 ...
- TypeScript语言学习笔记(3)函数,泛型
函数 // 具名函数和匿名函数 // Named function function add(x, y) { return x + y; } // Anonymous function let myA ...
- MySQL 已有大数据量表进行分区踩坑
一.背景mysql 表中已有 4 亿数据,为提高查询效率,需创建分区,一开始计划是创建 HASH 分区,结果报错:ERROR 1659 (HY000): Field 'partno' is of a ...
- isntall
#! /bin/bash # zabbix server address zabbix='10.10.238.110' # repo address REPO='10.10.238.114:4507' ...
- Cogs 732. [网络流24题] 试题库(二分图)
[网络流24题] 试题库 ★★ 输入文件:testlib.in 输出文件:testlib.out 评测插件 时间限制:1 s 内存限制:128 MB «问题描述: 假设一个试题库中有n道试题.每道试题 ...
- 洛谷 P2897 【蚯蚓】 题解
先分析一下题意: 这个题说的就是一开始给你很多条蚯蚓,然后给出你规定的次数,每一次都从蚯蚓里面拿出最长的来切成一条是原来q倍的,另一条是原来的(1 - q)倍,把切开的两条再放回去.规定次数完成之后, ...
- go语言new和make
1.new func new(Type) *Type 内建函数,内建函数 new 用来分配内存,它的第一个参数是一个类型,它的返回值是一个指向新分配类型默认值的指针! 2.make func make ...