Java实现浏览器链接地址的中文加密和解密
一:在好些的网站上进行相关的中文搜索的时候,发现点击搜索后留意了链接中的中文的变化,全部变成了加密后的字符串了.那么问题来了,java怎么实现这样的漂亮的加密的字符串了?
1.1案例展示--->来看51job上的例如搜索前端工程师:
1.2:原理分析--->简单分析 %25+16进制的,这个就想到了java中net包下的URLEncoder(加密),URLDecoder(解密),
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%<urldecode()函数与 urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符
但是前面还有一个25那?这个怎么实现,就是二次加密了。
1.3:源码展示--->
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
/**
* Title:UrlEncode
* Description:
* @date 2017年9月19日
* %25E8%25AE%25BE的解码:设
-----------------
设的编码为:%25E8%25AE%25BE
*
*/
public class UrlEncode {
public static void main(String[] args) {
//两次解密就可以了
try {
String str=URLDecoder.decode("%25E8%25AE%25BE","UTF-8");
//二次解码
System.out.println("%25E8%25AE%25BE的解码:"+(URLDecoder.decode(str,"UTF-8")));
System.out.println("-----------------");
String str1=URLEncoder.encode("设","UTF-8");
//二次编码
System.out.println("设的编码为:"+(URLEncoder.encode(str1,"UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
运行结果展示:
%25E8%25AE%25BE的解码:设
-----------------
设的编码为:%25E8%25AE%25BE
-----------------
设的编码为:%25E8%25AE%25BE
1.4:至此Java实现浏览器的地址中文的编码和解密就可以完成了.