package com.shlanbao.tzsc.utils.tools;
|
|
import java.security.MessageDigest;
|
import java.security.NoSuchAlgorithmException;
|
|
/**
|
* MD5加密工具类
|
* <li>@author Leejean
|
* <li>@create 2014-6-24 下午04:13:41
|
*
|
* @author zhuguifei
|
* @update 2019-06-03
|
* @desc 添加SHA256加密
|
*/
|
public class MD5Util {
|
|
public static void main(String[] args) {
|
String s = "lanbaoit";
|
System.out.println(md5(s));
|
System.out.println("SHA256:" + SHA256(s));
|
}
|
|
/**
|
* md5加密
|
*
|
* @param str
|
* @return
|
*/
|
public static String md5(String str) {
|
try {
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
md.update(str.getBytes());
|
byte[] byteDigest = md.digest();
|
int i;
|
StringBuffer buf = new StringBuffer("");
|
for (int offset = 0; offset < byteDigest.length; offset++) {
|
i = byteDigest[offset];
|
if (i < 0)
|
i += 256;
|
if (i < 16)
|
buf.append("0");
|
buf.append(Integer.toHexString(i));
|
}
|
// 32位加密
|
//return buf.toString();
|
// 16位的加密
|
return buf.toString().substring(8, 24);
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
|
/**
|
* 传入文本内容,返回 SHA-256 串
|
*
|
* @param strText
|
* @return
|
*/
|
public static String SHA256(final String strText) {
|
return SHA(strText, "MD5");
|
}
|
|
/**
|
* 传入文本内容,返回 SHA-512 串
|
*
|
* @param strText
|
* @return
|
*/
|
public static String SHA512(final String strText) {
|
return SHA(strText, "SHA-512");
|
}
|
|
/**
|
* 字符串 SHA 加密
|
*
|
* @param
|
* @return
|
*/
|
private static String SHA(final String strText, final String strType) {
|
// 返回值
|
String strResult = null;
|
|
// 是否是有效字符串
|
if (strText != null && strText.length() > 0) {
|
try {
|
// SHA 加密开始
|
// 创建加密对象 并傳入加密類型
|
MessageDigest messageDigest = MessageDigest
|
.getInstance(strType);
|
// 传入要加密的字符串
|
messageDigest.update(strText.getBytes());
|
|
byte byteBuffer[] = messageDigest.digest();
|
|
StringBuffer strHexString = new StringBuffer();
|
// 遍歷 byte buffer
|
for (int i = 0; i < byteBuffer.length; i++) {
|
String hex = Integer.toHexString(0xff & byteBuffer[i]);
|
if (hex.length() == 1) {
|
strHexString.append('0');
|
}
|
strHexString.append(hex);
|
}
|
// 得到返回結果
|
strResult = strHexString.toString();
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
}
|
}
|
|
return strResult;
|
}
|
|
}
|