Escape加解密Java版
来源:互联网 发布:紧急通知网页域名升级 编辑:程序博客网 时间:2024/05/16 00:46
/** * 中文加密 * Created by geo on 2017/7/4. */public class EscapeUtils { /** * Escape编码 * @param src 待加盐字符串 * @return 加盐字符串 */ public static String escape(String src) { int i; char j; StringBuffer tmp = new StringBuffer(); tmp.ensureCapacity(src.length() * 6); for (i = 0; i < src.length(); i++) { j = src.charAt(i); if (Character.isDigit(j) || Character.isLowerCase(j) || Character.isUpperCase(j)) tmp.append(j); else if (j < 256) { tmp.append("%"); if (j < 16) tmp.append("0"); tmp.append(Integer.toString(j, 16)); } else { tmp.append("%u"); tmp.append(Integer.toString(j, 16)); } } return tmp.toString(); } /** * Escape解码 * @param src 加盐字符串 * @return 明文 */ public static String unescape(String src) { StringBuffer tmp = new StringBuffer(); tmp.ensureCapacity(src.length()); int lastPos = 0, pos = 0; char ch; while (lastPos < src.length()) { pos = src.indexOf("%", lastPos); if (pos == lastPos) { if (src.charAt(pos + 1) == 'u') { ch = (char) Integer.parseInt(src .substring(pos + 2, pos + 6), 16); tmp.append(ch); lastPos = pos + 6; } else { ch = (char) Integer.parseInt(src .substring(pos + 1, pos + 3), 16); tmp.append(ch); lastPos = pos + 3; } } else { if (pos == -1) { tmp.append(src.substring(lastPos)); lastPos = src.length(); } else { tmp.append(src.substring(lastPos, pos)); lastPos = pos; } } } return tmp.toString(); }}
阅读全文
0 0
- Escape加解密Java版
- Java Escape加密解密
- JAVA加解密 -- Base64加解密
- JAVA加解密 -- Base64加解密
- 3DES 加解密 Java版
- Title_消息加解密(java版)
- java加解密-数字证书
- java RSA 加解密
- java 加解密
- DES加解密(Java)
- java加解密相关
- java RSA 加解密
- java加解密算法
- java RSA 加解密
- java加解密
- Java简单加解密
- Java加解密
- java加解密
- Head First设计模式笔记(装饰器模式)
- 66 最简单的linux framebuffer设备驱动实现
- poj3384-Feng Shui 求多边形上最远的两点(旋转卡壳算法)
- 40个java面试问题和答案
- JSP脚本的9个内置对象(一)——简述、Application对象
- Escape加解密Java版
- 高效web开发的10个jQuery代码片段
- C# 线程(一)入门
- Activity的生命周期以及四种形态
- 函数指针
- 嵌套条件的重构
- SPOJ
- 关于Solr/ES,我们不得不知道的十件事
- 转载{shader流光效果}