验证两个文件的md5值是否一样
来源:互联网 发布:seed网络加速器官网 编辑:程序博客网 时间:2024/05/18 02:57
1. 得到文件的MD5值并比较与原来的MD5值是否一样
public static boolean verifyInstallPackage(String packagePath,String crc) {
try {
MessageDigest sig = MessageDigest.getInstance("MD5");
File packageFile = new File(packagePath);
InputStream signedData = new FileInputStream(packageFile);
byte[] buffer = new byte[4096];//每次检验的文件区大小
long toRead = packageFile.length();
long soFar = 0;
boolean interrupted = false;
while (soFar < toRead) {
interrupted = Thread.interrupted();
if (interrupted) break;
int read = signedData.read(buffer);
soFar += read;
sig.update(buffer, 0, read);
}
byte[] digest = sig.digest();
String digestStr = bytesToHexString(digest);//将得到的MD5值进行移位转换
digestStr = digestStr.toLowerCase();
crc = crc.toLowerCase();
if (digestStr.equals(crc)) {//比较两个文件的MD5值,如果一样则返回true