Java MD5加密,Java 计算文件MD5值
[本类为java MD5工具类]
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.Serializable;
import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
/**
* MD5加密运算类
*
* @author LXQ
* @version 1.0 2014-4-14
*/
public class SECURITY_MD5 {
/**
* 加密一个输入字符串
*
* @param visibleString
* 输入一个可见的明码<br>
* 类型:java.lang.String
* @return 一个加密后的MD5值<br>
* 通常用于密码加密
*/
public static String getEnMD5String(String visibleString) {
MessageDigest md5;
try {
// 生成一个MD5加密计算摘要
md5 = MessageDigest.getInstance("MD5");
// 计算md5函数
md5.update(visibleString.getBytes());
// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的 值
String pwd = new BigInteger(1, md5.digest()).toString(16);
return pwd;
} catch (Exception e) {
e.printStackTrace();
}
return visibleString;
}
/**
* 计算文件MD5值
*
* @param file
* 输入一个文件参数<br>
* 类型:java.io.File
* @return 该文件的MD5值<br>
* 类型:java.lang.String
*/
public static String getMd5ForFile(File file) {
String value = null;
FileInputStream in = null;
try {
in = new FileInputStream(file);
MappedByteBuffer byteBuffer = in.getChannel().map(
FileChannel.MapMode.READ_ONLY, 0, file.length());
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(byteBuffer);
BigInteger bi = new BigInteger(1, md5.digest());
value = bi.toString(16);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return value;
}
}
欢迎分享本文,转载请注明出处,本文出处:竹林教程 点击复制
全站熱搜
留言列表