MD5加密
2016-06-22 10:10
453 查看
话不多说,直接上代码:
默认会对字符串的前2048个字符进行加密,可以根据需要进行调整
package com.ebao.frontsys.tools;
import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MD5Utils {
private static final int MD5_LENGTH = 1024 * 2;
private static Logger logger = LogManager.getLogger(MD5Utils.class.getName());
public static String generateMD5(String plainText) {
try {
if (null == plainText || plainText.length() == 0)
plainText = "";
plainText = (plainText.length() > MD5_LENGTH) ? plainText
.substring(0, MD5_LENGTH) : plainText;
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = plainText.getBytes(Charset.forName("UTF-8"));
md.update(bytes);
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0, j = b.length; offset < j; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
return buf.toString().toLowerCase();
} catch (NoSuchAlgorithmException e) {
logger.debug(ExceptionUtils.getFullStackTrace(e));
return null;
}
}
}
默认会对字符串的前2048个字符进行加密,可以根据需要进行调整
package com.ebao.frontsys.tools;
import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MD5Utils {
private static final int MD5_LENGTH = 1024 * 2;
private static Logger logger = LogManager.getLogger(MD5Utils.class.getName());
public static String generateMD5(String plainText) {
try {
if (null == plainText || plainText.length() == 0)
plainText = "";
plainText = (plainText.length() > MD5_LENGTH) ? plainText
.substring(0, MD5_LENGTH) : plainText;
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = plainText.getBytes(Charset.forName("UTF-8"));
md.update(bytes);
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0, j = b.length; offset < j; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
return buf.toString().toLowerCase();
} catch (NoSuchAlgorithmException e) {
logger.debug(ExceptionUtils.getFullStackTrace(e));
return null;
}
}
}
相关文章推荐
- 用ASP编写的加密和解密类
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- BAT加密工具 EncryBat 非编译型bat批处理加密方案与代码
- C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例
- SQLServer 2008中的代码安全(一) 存储过程加密与安全上下文
- 实例讲解SQL Server加密功能
- C#实现对文件进行加密解密的方法
- C#实现数据包加密与解密实例详解
- C#最简单的字符串加密解密方法
- C#加密app.config中连接字符串的方法
- C#使用伪随机数实现加密用户密码的方法
- asp MD5加密方式使用建议
- C#对称加密与非对称加密实例
- C语言压缩文件和用MD5算法校验文件完整性的实例教程
- 浅谈C#中Md5和Sha1两种加密方式
- 基于C#对用户密码使用MD5加密与解密
- vbs shellcode转换escape加密
- .NET实现一机一码加密、把EXE变成图片运行,被破解自动销毁随时授权回收
- PrintStream、MD5、ByteArrayInputStream、 ByteArrayOutputStream、16位流介绍