- 浏览: 100977 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (209)
- http://docs.jpush.io/server/java_sdk/ (1)
- SpingMVC ModelAndView (1)
- Model (1)
- Control以及参数传递 (1)
- https://www.alipay.com/ (1)
- 检查指定的字符串列表是否不为空。 (1)
- 转自http://my.oschina.net/rpgmakervx/blog/505434 (1)
- 压缩js (1)
- 含包含 字母数字校验 (1)
- 判断浏览器是ie (1)
- fixbox (0)
- 转自http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html (1)
- http://dl2.iteye.com/upload/attachment/0113/2406/afbd8d53-dcad-3afc-8d78-41c1591 (0)
- IDEA (0)
- maven搭建 (0)
- http://www.jeasyuicn.com/api/docTtml/index.htm (1)
- 给tomcat添加运行内存: (1)
- JPUSH推送 (1)
- requestScope (0)
- oracle中plsql安装client10连接数据库 (1)
- 不需要安装oracle11g (1)
- tuikuan (1)
- http://www.hjxmall.com/index.php (1)
- java (1)
- 参考 (1)
- xml签名验签模拟程序 (1)
- 技术网站收集分享 (1)
- Java NIO提供了与标准IO不同的IO工作方式 ------来源于 http://www.iteye.com/magazines/132-Java-NIO (1)
- oracle表查询语句优化 (0)
- oracle (5)
- a (1)
- TenpayHttpClient (2)
- mongodb (1)
- http://www.qcloud.com/product/cmongo.html?utm_source=pcsem1&utm_medium=bdgj46&utm_campaign=baidu (1)
- SpringMVC整合MongoDB开发 (0)
- SpringMVC整合MongoDB开发 https://www.mongodb.org (1)
- Java 语言中常见问题总结 (1)
- 数据库SQL优化大总结 (1)
- 拦截器与过滤器的区别 (1)
- Struts2中拦截器与过滤器的区别及执行顺序 (1)
- Spring声明式事务管理与配置 (0)
- oracle OPERTION (1)
- java 高并发多线程开发 (1)
- Collection 与 map 接口相关集合 (1)
- 多线程开发实践 (1)
- JVM调优总结 转自 http://www.importnew.com/18694.html (1)
- redis 五种数据类型的使用场景 转自于 http://blog.csdn.net/gaogaoshan/article/details/41039581 (1)
- HttpWatch http基础 来自于http://blog.csdn.net/gaogaoshan/article/details/21237555 (1)
- maven 远程仓库 http://blog.csdn.net/gaogaoshan/article/details/40266779 (1)
- 生成Webservice客户端的4中方法 http://blog.csdn.net/gaogaoshan/article/details/8980775 (1)
- http://fgh2011.iteye.com/blog/1564283 (1)
- sleep和wait有什么区别 http://xiaowei2002.iteye.com/blog/2174188 (1)
- JDK中常用包及其类 常见的几种RuntimeException (1)
- Java的运行原理 (1)
- mybatis缓存的使用及理解 http://my.oschina.net/dxqr/blog/123163 (1)
- 软件架构设计分析 (1)
- redis技术总结 (3)
- java面试总结知识点 (1)
- ZooKeeper技术 (1)
- Hadoop (1)
- sso单点登录 (1)
- SpringIOC (1)
- 书签ssssssssssssssssssssss (1)
- spring事务的隔离级别 http://www.cnblogs.com/yangy608/archive/2011/06/29/2093478.html (1)
- 秒杀系统架构分析与实战 http://www.importnew.com/18920.html (1)
- oracle 连接plsql配置 (1)
- maven工程集成springmvc http://blog.csdn.net/fox_lht/article/details/16952683 (1)
- java类序列化与反序列化版本唯一号serialVersionUID (1)
- spring注解用法总结 (1)
- eclipse导入maven项目找不到资源文件方法 (1)
- dubbo (0)
- socket 网络编程 服务器与客户端 编程 (1)
- Thread与Runnable实现线程利用线程插队实现求和操作 (1)
- 生产者与消费者模式 (1)
- JAXB注解 java 关于xml的注解,自动生成xml文件 - @XML*** (1)
- xml 与JAVAbean转换 (1)
- MAP (2)
- decimalToString (1)
- 反编译插件 (0)
- 反编译插件 https://sourceforge.net/projects/jadclipse/?source=typ_redirect (1)
- AWX (1)
- 官网地址Dinp (1)
- public interface ExecutorService extends Executor (1)
- MAIN (1)
- 转自于 http://blog.csdn.net/lufeng20/article/details/24314381 (1)
- JaxbUtil (1)
- HttpXmlClient (0)
- Http post 请求 (1)
- URLDecoder (1)
- spdb (0)
- 订单号生成规则 (1)
- 距离0点毫秒数 (1)
- MyBatis存储过程调用java (1)
- Banks (1)
- 学习网址 (1)
- hots配置oracle数据库配置修改 (1)
- 支付宝文档 (1)
- Jadclipse (1)
- filter (0)
- Filter过滤器 (1)
- 工具类 fixbox (1)
- java quartz (0)
- java quartz 实现定时任务,每个礼拜一到礼拜五定时执行 (1)
- Thread (4)
- getResourceAsStream (1)
- BigData (1)
- 开源架构 (17)
- 架构 (0)
- 文件操作 (2)
- tools (20)
- 测试工具 (1)
- vm (1)
- mq (1)
- blog (1)
- 开源架构搭建技术 (6)
- JAVA细节技术点总结 (1)
- 优化技术 (1)
- LINUX命令使用 (1)
- spring (2)
- 大数据 (1)
- struts2 (1)
- python (1)
- pay (1)
- linux (1)
- 压力测试 (1)
- 代码检查插件 (1)
- 游戏端开发 (1)
- 微信开发相关 (1)
- 搜索引擎 (1)
- 网络技术 (1)
- 分布式部署 (1)
- 堆栈信息 (1)
最新评论
Utils加解密操作反射 空值判断功能
package com.kame.micropay.commons.util;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Utils {
/**
* 加解密操作集合对象.
* @param objs
* @param flag (flag:true 加密,false:解密.)
* @param attribute
*/
public static void desDecryptOrEncryptObjectList(List<?> objs, Boolean flag,String... attribute){
if (null != objs && !objs.isEmpty()) {
for (int i = 0; i < objs.size(); i++) {
desDecryptOrEncryptObject(objs.get(i),flag,attribute);
}
}
}
/**
* 对象加解密操作
* @param obj
* @param flag (true 加密,false:解密.)
* @param attribute
*/
public static void desDecryptOrEncryptObject(Object obj,Boolean flag,String... attribute) {
if (null != obj && null != attribute) {
for (int j = 0; j < attribute.length; j++) {
try {
Field f = obj.getClass().getDeclaredField(attribute[j]);
f.setAccessible(true);
if (flag) f.set(obj,DESUtil.desEncrypt(f.get(obj) == null ? "": f.get(obj).toString()));
f.set(obj,DESUtil.desDecrypt(f.get(obj) == null ? "": f.get(obj).toString()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
/** 可以用于判断Object,String,Map,Collection,String,Array是否为空 */
public static boolean isNull(Object value) {
if (value == null) {
return true;
} else if(value instanceof String){
if(((String)value).trim().replaceAll("\\s", "").equals("")){
return true;
}
}else if(value instanceof Collection) {
if(((Collection)value).isEmpty()){
return true;
}
} else if (value instanceof Object[]) {
Object[] object = (Object[]) value;
if (object.length == 0) {
return true;
}
boolean empty = true;
for (int i = 0; i < object.length; i++) {
if (!isNull(object[i])) {
empty = false;
break;
}
}
return empty;
} else if(value.getClass().isArray()) {
if(Array.getLength(value) == 0){
return true;
}
} else if(value instanceof Map) {
if(((Map)value).isEmpty()){
return true;
}
} else {
return false;
}
return false;
}
public static boolean isNull(Object value, Object... items){
if (isNull(value) || isNull(items)) {
return true;
}
for (Object item : items) {
if (isNull(item)) {
return true;
}
}
return false;
}
public static boolean isNotNull(Object value){
return !isNull(value);
}
public static boolean isNotNull(Object value, Object... items){
return !isNull(value,items);
}
public static boolean Null(Object value, Object... items){
if (isNull(value) || isNull(items)) {
return true;
}
for (Object item : items) {
if (isNull(item)) {
return true;
}
}
return false;
}
/**
* 进行加法运算
* @param d1
* @param d2
* @return
*/
public static double add(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.add(b2).doubleValue();
}
/**
* 进行减法运算
* @param d1
* @param d2
* @return
*/
public static double sub(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.subtract(b2).doubleValue();
}
/**
* 进行乘法运算
* @param d1
* @param d2
* @return
*/
public static double mul(double d1, double d2){
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.multiply(b2).doubleValue();
}
/**
* 进行除法运算
* @param d1
* @param d2
* @param len
* @return
*/
public static double div(double d1,double d2,int len) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.divide(b2,len, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 进行四舍五入操作
* @param d
* @param len
* @return
*/
public static double round(double d,int len) {
BigDecimal b1 = new BigDecimal(d);
BigDecimal b2 = new BigDecimal(1);
// 任何一个数字除以1都是原数字
// ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作
return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 生成订单流水号,格式为日期+时间
*/
public static String RecordIDGenerater() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
return formatter.format(new Date());
}
/***
* 产生一个随机数
* @param i
* @return
*/
public static int random(int i){
Random r=new Random();
int k=r.nextInt(i);
while(k<1000){
k=r.nextInt(i);
}
return k;
}
}
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Utils {
/**
* 加解密操作集合对象.
* @param objs
* @param flag (flag:true 加密,false:解密.)
* @param attribute
*/
public static void desDecryptOrEncryptObjectList(List<?> objs, Boolean flag,String... attribute){
if (null != objs && !objs.isEmpty()) {
for (int i = 0; i < objs.size(); i++) {
desDecryptOrEncryptObject(objs.get(i),flag,attribute);
}
}
}
/**
* 对象加解密操作
* @param obj
* @param flag (true 加密,false:解密.)
* @param attribute
*/
public static void desDecryptOrEncryptObject(Object obj,Boolean flag,String... attribute) {
if (null != obj && null != attribute) {
for (int j = 0; j < attribute.length; j++) {
try {
Field f = obj.getClass().getDeclaredField(attribute[j]);
f.setAccessible(true);
if (flag) f.set(obj,DESUtil.desEncrypt(f.get(obj) == null ? "": f.get(obj).toString()));
f.set(obj,DESUtil.desDecrypt(f.get(obj) == null ? "": f.get(obj).toString()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
/** 可以用于判断Object,String,Map,Collection,String,Array是否为空 */
public static boolean isNull(Object value) {
if (value == null) {
return true;
} else if(value instanceof String){
if(((String)value).trim().replaceAll("\\s", "").equals("")){
return true;
}
}else if(value instanceof Collection) {
if(((Collection)value).isEmpty()){
return true;
}
} else if (value instanceof Object[]) {
Object[] object = (Object[]) value;
if (object.length == 0) {
return true;
}
boolean empty = true;
for (int i = 0; i < object.length; i++) {
if (!isNull(object[i])) {
empty = false;
break;
}
}
return empty;
} else if(value.getClass().isArray()) {
if(Array.getLength(value) == 0){
return true;
}
} else if(value instanceof Map) {
if(((Map)value).isEmpty()){
return true;
}
} else {
return false;
}
return false;
}
public static boolean isNull(Object value, Object... items){
if (isNull(value) || isNull(items)) {
return true;
}
for (Object item : items) {
if (isNull(item)) {
return true;
}
}
return false;
}
public static boolean isNotNull(Object value){
return !isNull(value);
}
public static boolean isNotNull(Object value, Object... items){
return !isNull(value,items);
}
public static boolean Null(Object value, Object... items){
if (isNull(value) || isNull(items)) {
return true;
}
for (Object item : items) {
if (isNull(item)) {
return true;
}
}
return false;
}
/**
* 进行加法运算
* @param d1
* @param d2
* @return
*/
public static double add(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.add(b2).doubleValue();
}
/**
* 进行减法运算
* @param d1
* @param d2
* @return
*/
public static double sub(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.subtract(b2).doubleValue();
}
/**
* 进行乘法运算
* @param d1
* @param d2
* @return
*/
public static double mul(double d1, double d2){
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.multiply(b2).doubleValue();
}
/**
* 进行除法运算
* @param d1
* @param d2
* @param len
* @return
*/
public static double div(double d1,double d2,int len) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.divide(b2,len, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 进行四舍五入操作
* @param d
* @param len
* @return
*/
public static double round(double d,int len) {
BigDecimal b1 = new BigDecimal(d);
BigDecimal b2 = new BigDecimal(1);
// 任何一个数字除以1都是原数字
// ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作
return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 生成订单流水号,格式为日期+时间
*/
public static String RecordIDGenerater() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
return formatter.format(new Date());
}
/***
* 产生一个随机数
* @param i
* @return
*/
public static int random(int i){
Random r=new Random();
int k=r.nextInt(i);
while(k<1000){
k=r.nextInt(i);
}
return k;
}
}
相关推荐
Java文件加解密工具类,使用AES算法,256位秘钥。srcFile为输入文件,destFile为输出文件。
`zip_utils_src` 提供了C++语言实现的ZIP文件操作的源码和实例,这对于理解和开发相关功能非常有帮助。 首先,我们来讨论C++中的压缩库。在C++中,处理ZIP文件通常依赖于第三方库,如ZLib、LibZip或MiniZip。这些库...
本文将深入探讨这些算法,并基于提供的文件名,如`SM2Utils.java`、`SM3Digest.java`等,讲解如何在Java环境中实现国密SM2密钥生成与加解密,以及SM3摘要生成。 首先,让我们了解国密SM2算法。SM2是一种基于椭圆...
在IT行业中,Utils是一个常见的术语,它通常代表“Utils”或“Utilities”,指的是包含各种通用功能的工具类库。这个“utils使用实例.rar”的压缩包很可能是为了提供一个关于Utils类库的实际应用教程,帮助用户理解...
sm4的java算法
Bouncy Castle是一个强大的Java加密库,提供了对ECC的支持,包括密钥生成、加密解密等功能。下面我们将详细探讨如何使用Bouncy Castle库来实现ECC的双向加密解密。 1. **椭圆曲线加密原理**: 椭圆曲线加密算法...
在使用Plexus Utils时,有几点需要注意:一是虽然Plexus Utils提供了丰富的工具类,但并不意味着所有功能都适合所有项目,应根据项目需求合理选择使用;二是不同版本可能存在不兼容的问题,升级前需要仔细测试;三是...
本文将详细介绍BlueZ-utils-3.36版本,探讨其核心功能、使用场景以及如何在实际项目中进行操作。 BlueZ-utils-3.36是一个针对Linux平台的开源蓝牙工具集,它包含了各种命令行工具,用于管理蓝牙设备、建立连接、...
在Java中,通常一个包(package)会包含一系列相关的类,所以"rsautils"可能包含实现RSA算法的各种类,如`RSACipher`用于加密解密,`KeyGenerator`用于生成密钥对,以及可能的辅助类如`Utils`,提供一些辅助函数如...
alsa-utils
**mtd-utils** 是一组用于管理Memory Technology Device (MTD)的工具,主要用于操作和维护嵌入式系统中的闪存设备。MTD是Linux内核中处理非易失性存储器(如EEPROM、EPROM、NOR和NAND闪存)的子系统。mtd-utils提供...
在Android开发中,工具类(Utils)是一种封装了常用功能的类库,它们可以提高代码的复用性和可维护性,让开发者能更专注于业务逻辑而不是基础操作。本篇文章将详细解析“android utils 工具类大集合”这一主题,探讨...
针对加密解密的常用方法集合,全部集成到Utils中,可以直接使用
基于Java的(SM2_SM3_SM4)国密算法java源代码及工具类,包含测试demo,一件加解密比较方便
这篇内容将深入探讨Lang Utils模块的核心功能和常见应用场景,帮助开发者更好地理解和利用这个强大的工具。 一、概述 Apache Commons Lang是一个开源项目,其目标是提供Java语言没有涵盖但又非常实用的功能。Lang ...
Linux中的exfat-utils是一个用于在Linux系统上读取、写入和管理ExFAT文件系统的工具集。 "exfat-utils-1.0.1.tar.gz" 是一个包含ExFAT实用程序的源码包,版本号为1.0.1。这个压缩包提供了在Linux环境下操作ExFAT...
Redis Utils工具类是Java开发中常见的一种封装,用于简化与Redis数据库的交互操作。Redis是一种高性能的键值存储系统,广泛应用于缓存、消息队列、数据持久化等多个场景。在Java开发中,为了提高代码的可读性和复用...
本文将详细探讨ext4_utils的原理、功能及在三星线刷ROM制作过程中的应用。 一、ext4文件系统概述 ext4是Linux系统的第四代扩展文件系统,是对ext3的改进版本,旨在提高性能和可靠性。它引入了多项新特性,如更大的...
`Encoder`类负责加密过程,`Decoder`类负责解密,而`Utils`类可以提供一些辅助函数,如将字符串转换为字节数组,以及处理其他与二进制数据相关的操作。 `Encoder`类的核心是异或操作。它会接收明文字符串和密钥,...
本篇将详细阐述`Android常用工具类Utils`的相关知识点,涵盖系统操作、图像处理、对话框管理、Toast提示、文件操作、日志记录、通知栏推送、SharedPreferences存储、线程管理和时间日期处理等方面。 1. **系统工具*...