/**
* 根据日期获取星期
*
* @param strdate
* @return
*/
public static String getWeekDayByDate(String strdate) {
final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
Date date = new Date();
try {
date = sdfInput.parse(strdate);
} catch (ParseException e) {
e.printStackTrace();
}
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if (dayOfWeek < 0)
dayOfWeek = 0;
return dayNames[dayOfWeek];
}
/**
* 判断是否是IE浏览器
*
* @param userAgent
* @return
*/
public static boolean isIE(HttpServletRequest request) {
String userAgent = request.getHeader("USER-AGENT").toLowerCase();
boolean isIe = true;
int index = userAgent.indexOf("msie");
if (index == -1) {
isIe = false;
}
return isIe;
}
/**
* 基于MD5算法的单向加密
*
* @param strSrc
* 明文
* @return 返回密文
*/
public static String encryptBasedMd5(String strSrc) {
String outString = null;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] outByte = md5.digest(strSrc.getBytes("UTF-8"));
outString = outByte.toString();
} catch (Exception e) {
e.printStackTrace();
}
return outString;
}
/**
* DES算法密钥
*/
private static final byte[] DES_KEY = { 21, 1, -110, 82, -32, -85, -128, -65 };
/**
* 数据加密,算法(DES)
*
* @param data
* 要进行加密的数据
* @return 加密后的数据
*/
public static String encryptBasedDes(String data) {
String encryptedData = null;
try {
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
DESKeySpec deskey = new DESKeySpec(DES_KEY);
// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(deskey);
// 加密对象
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key, sr);
// 加密,并把字节数组编码成字符串
encryptedData = new Base64().encodeToString(cipher.doFinal(data.getBytes()));
} catch (Exception e) {
log.error("加密错误,错误信息:", e);
throw new RuntimeException("加密错误,错误信息:", e);
}
return encryptedData;
}
/**
* 数据解密,算法(DES)
*
* @param cryptData
* 加密数据
* @return 解密后的数据
*/
public static String decryptBasedDes(String cryptData) {
String decryptedData = null;
try {
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
DESKeySpec deskey = new DESKeySpec(DES_KEY);
// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(deskey);
// 解密对象
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key, sr);
// 把字符串解码为字节数组,并解密
decryptedData = new String(cipher.doFinal(new Base64().decode(cryptData)));
} catch (Exception e) {
log.error("解密错误,错误信息:", e);
throw new RuntimeException("解密错误,错误信息:", e);
}
return decryptedData;
}
分享到:
相关推荐
在这个"javautils"压缩包中,我们可以预见到包含了一些自定义的Java工具类,可能涵盖了字符串处理、日期时间操作、集合操作等多个方面。 1. **字符串处理**: JavaUtils中的字符串工具类可能会包含一些扩展了Java...
"java工具类 utils.zip" 提供了一系列实用的工具类,涵盖了日期处理、字符串操作、JSON解析、Spring Bean操作、加密解密、Base64编码、图像处理、随机数生成以及正则表达式等多个方面。下面我们将逐一探讨这些工具类...
JavaUtils工具类是Java开发中常见的一类辅助代码集合,它们通常包含各种静态方法,用于简化常见的编程任务,提高开发效率。在这个特定的例子中,我们关注的是一个名为`Encrypt.java`的文件,它可能包含了加密相关的...
JavaUtils工具类是Java开发中常见的一种编程实践,它封装了一系列通用的功能,便于开发者在项目中快速调用,提高代码的可复用性和可维护性。在这个特定的"javautils工具类"中,我们重点关注的是它对Excel操作的支持...
Java Property Utils是Java开发中的一个实用工具库,主要用于处理和操作Java系统属性和配置文件。在给定的场景中,`java-property-utils-1.9.1.jar` 和 `java-property-utils-1.10.jar` 是这个库的两个不同版本,...
Base64Utils java工具类
1、Utils工具类有String工具类、XmlNode节点工具类、BeanFactory相关、Common工具类、Cookie工具类、Date工具类、Http工具类、JDBC工具类、日志Log工具类、Servlet相关等。2、工具类省了重复造轮子的工作,可以直接...
Redis Utils工具类是Java开发中常见的一种封装,用于简化与Redis数据库的交互操作。Redis是一种高性能的键值存储系统,广泛应用于缓存、消息队列、数据持久化等多个场景。在Java开发中,为了提高代码的可读性和复用...
总结来说,这个压缩包提供了一套全面的Java工具类,涵盖了正则表达式处理和Base64编码解码等功能,对于任何Java开发者来说,都是一个宝贵的资源。通过合理地使用这些工具类,可以优化代码结构,提高开发效率,并确保...
BeanUtils.java ...ClassUtils.java CollectionUtils.java ContentHandler.java DateUtils.java DigestUtils.java DomContentHandler.java DomUtils.java FileCopyUtils.java FileUtils.java GenericsUtils.java ...