对文件进行加密:
/**
* 计算文件的Md5
*
* @param file
* @return MD5摘要码
*/
public static String calcMd5Checksum(File file) {
FileInputStream fis = null;
byte[] buffer = new byte[2048];
int numRead = 0;
try {
fis = new FileInputStream(file);
MessageDigest algorithm = MessageDigest.getInstance("MD5");
while ((numRead = fis.read(buffer)) > 0) {
algorithm.update(buffer, 0, numRead);
}
return toHexString(algorithm.digest(), "");
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "toMd5(): " + e);
throw new RuntimeException(e);
} catch (Exception ex) {
ex.printStackTrace();
return null;
} finally {
try {
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
private static String toHexString(byte[] bytes, String separator) {
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
hexString.append(Integer.toHexString(0xFF & b)).append(separator);
}
return hexString.toString();
}
public static String calcMd5Checksum(String plainText, int size) {
return calcMd5Checksum(plainText).substring(0, size);
}
/**
* 计算Md5
*
* @param plainText
* @return
*/
public static String calcMd5Checksum(String plainText) {
try {
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(plainText.getBytes());
return toHexString(algorithm.digest(), "");
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "toMd5(): " + e);
throw new RuntimeException(e);
}
}