- 浏览: 114339 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
DemonLi:
我来组成点击量
linux 修改时间 ntp同步时间 -
lvinie:
Ray_Mysterio 写道请问一下,我现在安装heartb ...
heartbeat 配置 -
Ray_Mysterio:
请问一下,我现在安装heartbeat的时候出现了一个问题。两 ...
heartbeat 配置 -
Ray_Mysterio:
请问一下,我现在安装heartbeat的时候出现了一个问题。两 ...
heartbeat 配置 -
Ray_Mysterio:
请问一下,我现在安装heartbeat的时候出现了一个问题。两 ...
heartbeat 配置
import java.io.UnsupportedEncodingException; import java.security.MessageDigest; /** * 编码工具类,包括: <br> * 1)MD5/SHA编码 <br> * 2)Base64编码 <br> * 3)DES/ThreeDES编码 <br> * 4)GBK/UTF-8/ISO-8859-1/UNICODE转换 <br> */ public class CoderUtil { public static final String ALGORITHM_MD5 = "MD5"; /** * MD5 编码,返回本地编码字符串 * * @param src 源串 * @param encoding 编码 * @return 目标串 */ public static String md5Encoder(String src, String encoding) { if (src == null) return null; byte[] destBytes = md5EncoderByte(src, encoding); String dest = ""; for (int i = 0; i < 16; i++) { dest += byteToHEX(destBytes[i]); } return dest; } /** * MD5 编码,返回本地编码字符串 * * @param src 源串 默认使用UTF-8编码 * @return 目标串 */ public static String md5Encoder(String src) { return md5Encoder(src, "UTF-8"); } /** * MD5编码,返回byte数组,本地编码 * * @param src 源串 默认使用UTF-8编码 * @return 目标编码 */ public static byte[] md5EncoderByte(String src) { return md5EncoderByte(src, "UTF-8"); } /** * MD5编码,返回byte数组 * * @param src 源串 * @param encoding 编码 * @return 目标编码 */ public static byte[] md5EncoderByte(String src, String encoding) { if (src == null) return null; try { if (encoding == null) return md5EncoderByte(src.getBytes()); else return md5EncoderByte(src.getBytes(encoding)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } } /** * MD5编码,返回byte数组 * * @param buf 源byte数组 * @return 目标编码 */ public static byte[] md5EncoderByte(byte[] buf) { if (buf == null) return null; try { MessageDigest md5Temp = MessageDigest.getInstance(ALGORITHM_MD5); return md5Temp.digest(buf); } catch(Exception e) { e.printStackTrace(); return null; } } /** * Base64 编码 * * @param src 源串 * @return 目标串 */ public static String base64Encode(String src) { if (src == null) return null; return base64Encode(src.getBytes()); } /** * Base64 编码 * * @param src 源串 * @return 目标串 */ public static String base64Encode(byte[] src) { if (src == null) return null; return new String(Base64.encodeBase64(src)); } /** * Base64 编码 * * @param src 源串 * @return 目标串 */ public static String base64Encode(String src, String encoding) { if (src == null) return null; try { byte[] dest = Base64.encodeBase64(src.getBytes(encoding)); return new String(dest, encoding); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException(e); } } /** * Base64 解码 * * @param dest 目标串 * @return 源编码 */ public static byte[] base64DecodeBytes(String dest) { if (dest == null) return null; return Base64.decodeBase64(dest.getBytes()); } /** * Base64 解码 * * @param dest 目标串 * @return 源串 */ public static String base64Decode(String dest) { if (dest == null) return null; byte[] b = Base64.decodeBase64(dest.getBytes()); return new String(b); } /** * Base64 解码 * * @param dest 目标串 * @return 源串 */ public static String base64Decode(String dest, String encoding) { if (dest == null) return null; try { byte[] b = Base64.decodeBase64(dest.getBytes(encoding)); return new String(b, encoding); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException(e); } } /** * Base64 解码 * * @param dest 目标串 * @return 源编码 */ public static byte[] base64DecodeBytes(String dest, String encoding) { if (dest == null) return null; try { return Base64.decodeBase64(dest.getBytes(encoding)); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException(e); } } /** * 把字节转换为16进制字符 * * @param ib * @return */ public static String byteToHEX(byte ib) { char[] Digit = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char [] ob = new char[2]; ob[0] = Digit[(ib >>> 4) & 0X0F]; ob[1] = Digit[ib & 0x0F]; String s = new String(ob); return s; } /** * 给定一个url,和key,取得value * 此方法仅供参考,不作解释 * @param url * @param key * @return String 给定一个url,和key,取得value */ public static String getURLValue(String url,String key) { if(isEmpty(url) || isEmpty(key)) return ""; int p = url.indexOf("?"); if (p != -1) url = url.substring(p); if (!url.startsWith("?")) url = "?" + url; int index = url.indexOf(key); if(index == -1) return ""; if ((url.charAt(index-1) != '?' && url.charAt(index-1) != '&') || index+key.length()>=url.length() || url.charAt(index+key.length()) != '=') return ""; int point = index + key.length(); int valueIndex = url.indexOf('&',point); if (valueIndex == -1) return url.substring(point+1,url.length()); return url.substring(point+1,valueIndex); } /** 检查字符串是否为空 */ private static boolean isEmpty(String s) { return ((s == null) || (s.trim().length() == 0)); } /** * 读取XML中字段的值,允许没有field时返回空字符串 * 此方法仅供参考,不作解释 * @param xml XML字符串 * @param field 字段名 * @return 返回XML中字段中的值 * @throws Exception 如果字段内容不符合要求,则抛出此异常 */ public static String getXmlField(String xml, String field) throws Exception { if (xml.length() < field.length() * 2 + 5) { throw new Exception("xml tag #"+field+"# format error"); } String lField = "<"+field+">"; String rField = "</"+field+">"; int iLeft = xml.indexOf(lField); int iRight = xml.indexOf(rField); if (iLeft == -1 && iRight == -1) return ""; if ((iLeft == -1 && iRight != -1) || (iLeft != -1 && iRight == -1)) { throw new Exception("xml tag #"+field+"# format error"); } int valueLen = iRight - iLeft - lField.length(); if (valueLen <= 0) return ""; return xml.substring(iLeft + lField.length(), iRight); } /** * 读取XML中字段的int值 * 此方法仅供参考,不作解释 * @param xml XML字符串 * @param field 字段名 * @return int 返回XML中字段中的int值 * @throws Exception 如果字段不是int或格式不正确,则抛出此异常 */ public static int getXmlFieldInt(String xml, String field) throws Exception { if (xml.length() < field.length() * 2 + 5) { throw new Exception("xml tag #"+field+"# format error"); } String lField = "<"+field+">"; String rField = "</"+field+">"; int iLeft = xml.indexOf(lField); int iRight = xml.indexOf(rField); if (iLeft == -1 || iRight == -1) { throw new Exception("xml tag #"+field+"# format error"); } int valueLen = iRight - iLeft; if (valueLen < 1)//nubmer不允许为空 { throw new Exception("xml tag #"+field+"# format error"); } String valueInt = xml.substring(iLeft + lField.length(), iRight); if (!isInteger(valueInt)) { throw new Exception("xml tag #"+field+"# format error"); } return Integer.parseInt(valueInt); } /** 检查是否是整型 */ private static boolean isInteger(String s) { if (isEmpty(s)) return false; // 逐个检查,如果出现一个字符不是数字则返回false for (int i = 0; i < s.length(); i++) { if ("0123456789".indexOf(s.charAt(i)) == -1) return false; } return true; } }
发表评论
-
java发送http的get、post请求
2014-05-22 13:41 681package wzh.Http; impor ... -
Java中的instanceof关键字
2012-05-22 09:40 0instanceof是Java的一个二元操作 ... -
tomcat 最大连接数配置
2011-10-10 13:01 1288server.xml中配置 <Connector ... -
tomcat start stop 脚本
2011-10-05 17:49 2246创建文件tomcat,文件内容如下 [root@ ... -
读取config 工具类
2011-09-05 14:35 1275import java.io.File; import ja ... -
java的System.getProperty()方法可以获取的值
2011-09-05 14:18 646java.version Java ... -
MySql 备份还原常用命令
2011-09-02 11:22 845备份MySQL数据库的命令 mys ... -
struts2的struts.properties配置文件详解
2011-08-13 14:04 885struts.action.extension ... -
java(Web)中相对路径,绝对路径问题总结
2011-08-02 09:39 791前一段时间,由于在处理Web应用下的文件创建与移动 ... -
java中的io系统详解 (转)
2011-08-01 20:24 706Java 流在处理上分为字符流和字节流。字符流处理的 ... -
Struts2配置文件详解——struts-default.xml
2011-07-31 11:55 783<?xml version="1.0" ... -
Struts 2的基石——拦截器(Interceptor)
2011-07-31 10:41 839Interceptor(以下译为拦 ... -
JAVA中的时间操作 转
2011-07-26 17:16 797java 中的时间操作不外 ... -
org.springframework.web.util.IntrospectorCleanupListener是什么东东
2011-07-21 19:13 6031看到好多项目的web.xml中都配置了 <listen ... -
PO VO FormBean
2011-04-20 16:13 991概念: PO是持 ... -
ActionForm工作流程
2011-04-20 16:13 1224工作原理: 处理ActionForm的一般步骤: ... -
actionForm声明周期
2011-04-20 16:12 798看了很多的资料书籍,都提了一下ActionForm ... -
EL表达式 js基础
2011-04-20 16:12 1564El表达式 1.EL表达式需要的环境:servlet2.4 ... -
郁闷的 NoSuchMethodError
2011-04-20 16:11 1240最近做程序时 就是自 ... -
servlet 中使用Spring自动注入的bean
2011-04-13 10:49 1774用servlet的时候遇到一个问题,想往servlet中直接注 ...
相关推荐
为了提高开发效率,程序员们常常会创建一些实用工具类库,如"C# Util",它整合了多种常用的功能模块,使得代码复用变得更为便捷。下面将详细阐述这个工具类库中的主要组成部分及其应用场景。 1. **Json**: JSON...
这里提到的"android工具类 26个实用工具类"是一个集合,包含了多个针对Android开发的便捷函数。这些工具类可能包括网络请求、数据处理、UI操作、文件操作等多个方面,对于新手和有经验的开发者来说,都是提高开发...
"AS程序员实用工具类"正是这样一种提升开发效率的解决方案。GreenSock(简称GS)是一个广受欢迎的库,它为ActionScript 3.0提供了丰富的动画和工具类,能够帮助程序员更加高效地创建交互式内容和动态效果。 ...
提供Swift丰富的扩展和实用工具类,并大多数支持Objective-C。.zip提供Swift丰富的扩展和实用工具类,并大多数支持Objective-C。.zip提供Swift丰富的扩展和实用工具类,并大多数支持Objective-C。.zip提供Swift丰富...
这个名为"实用工具类AjaxResponse"的工具类设计旨在提供一种高效且统一的方式来处理服务器端的返回信息。 Lambda表达式的引入,使得代码更加简洁、可读性强,是Java 8之后的重要特性。在这个AjaxResponse类中,...
"常用、实用工具类"这个标题暗示了我们讨论的是一些在日常编程和系统管理中不可或缺的工具。这些工具可能涵盖多个领域,如代码编辑器、版本控制系统、调试器、性能分析工具等。以下将详细介绍一些常见的实用工具及其...
JAVA实用工具类
在IT行业中,开发效率是至关重要的,为了提高开发效率,开发者往往会积累并整理出一系列的“实用工具类”。这些工具类通常包含了各种常见任务的解决方案,可以被复用于多个项目,避免了每次遇到相同问题时都需要重新...
"MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的实用工具类、扩展方法以及数据模型类。 1. **MJ.Util**: 这个命名很可能代表了一个包含各种通用功能的工具类库。...
该项目是一个基于Java语言的Android应用开发包,整合了主流的第三方组件、自定义控件和实用工具类,旨在加速APP开发流程。项目共包含1472个文件,其中Java源文件636个,XML配置文件401个,PNG图片文件244个,JAR包...
本实用工具类利用Java编程语言中的泛型、反射和Apache POI库,实现了对Excel表格的强大功能,以适应各种实体封装的报表表格需求。 首先,让我们深入理解一下核心概念: 1. **泛型**:Java泛型是一种在编译时检查...
"Android-CakeUtility"项目就是这样一个工具集,它借鉴了CakePHP框架中的实用工具类,为Android开发者提供了方便的功能。让我们详细了解一下这个项目所包含的一些关键知识点。 1. **Inflector**: Inflector是 ...
为了方便Java程序员与MongoDB交互,通常会创建一些实用工具类,将常见的数据库操作封装起来,降低代码复杂性。本篇文章将详细介绍如何利用提供的"Java访问MongoDB实用工具类"进行高效开发。 首先,`mongodb....
该项目为Android开发者量身打造的实用工具类集合设计源码,包含666个文件,涵盖323个Java源文件、153个XML配置文件、158个PNG图片文件以及少量其他类型文件。集成了支付宝支付、微信支付(统一下单)、微信分享、Zip...
该项目是一款基于Kotlin的Android开发实用工具类集合设计源码,包含958个文件,包括402个Kotlin文件、246个XML配置文件、207个PNG图片文件、56个Java文件、9个Gradle文件、8个Git忽略文件、8个JPG图片文件、7个...
这个名为"提供Swift丰富的扩展和实用工具类,并大多数支持Objective-C.zip"的资源包显然是为了帮助开发者提升Swift项目的效率和代码复用性。它包含了一系列预定义的扩展和实用工具类,这些工具可能涵盖了字符串处理...