package com.gzsll.hupu.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* Created by sll on 2015/3/9.
*/
public class SecurityUtil {
public static String getMd5ByteByFile(File file) {
FileInputStream in = null;
try {
in = new FileInputStream(file);
MessageDigest md = MessageDigest.getInstance("MD5");
in = new FileInputStream(file);
byte[] buffer = new byte[2048];
int length;
while ((length = in.read(buffer)) != -1) {
md.update(buffer, 0, length);
}
//32位加密
return bytesToHexString(md.digest());
} catch (Exception e) {
return "";
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 使用MD5算法对传入的key进行加密并返回。
*/
public static String getMD5(String key) {
String cacheKey;
try {
final MessageDigest mDigest = MessageDigest.getInstance("MD5");
mDigest.update(key.getBytes());
cacheKey = bytesToHexString(mDigest.digest());
} catch (NoSuchAlgorithmException e) {
cacheKey = String.valueOf(key.hashCode());
}
return cacheKey;
}
private static String bytesToHexString(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
if (hex.length() == 1) {
sb.append('0');
}
sb.append(hex);
}
return sb.toString();
}
}