packagecom.sicdt.library.core.utils;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importorg.apache.commons.codec.binary.Hex;importorg.apache.commons.codec.digest.DigestUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;/***
*
类 名: MD5Utils
*
描 述: 加密工具类
*
作 者: shizhenwei
*
创 建: 2017年5月15日
*
版 本: v0.0.2
*
*
历 史: (版本) 作者 时间 注释*/
public classMD5Utils {private static final Logger logger = LoggerFactory.getLogger(MD5Utils.class);private static MessageDigest messagedigest = null;static{try{
messagedigest= MessageDigest.getInstance("MD5");
}catch(NoSuchAlgorithmException e) {
logger.error("MD5 messagedigest初始化失败", e);
}
}/*** 对一个文件获取md5值
*@returnmd5串*/
public staticString getFileMD5String(File file) {try(FileInputStream fileInputStream = newFileInputStream(file);) {returngetStreamMD5String(fileInputStream);
}catch(Exception e) {
e.printStackTrace();return null;
}
}public staticString getStreamMD5String(InputStream input) {try{byte[] buffer = new byte[8192];intlength;while ((length = input.read(buffer)) != -1) {
messagedigest.update(buffer,0, length);
}return newString(Hex.encodeHex(messagedigest.digest()));
}catch(IOException e) {
e.printStackTrace();return null;
}
}public staticString getMD5String(String s){returnDigestUtils.md5Hex(s);
}public static String getMD5String(byte[] bytes) {returnDigestUtils.md5Hex(bytes);
}public static booleancheckPassword(String password, String md5PwdStr){
String s=getMD5String(password);returns.equals(md5PwdStr);
}
}