MD5在Android开发中的应用

一.MD5的相关概念方面的介绍

直接百度百科:http://baike.baidu.com/link?url=RKTreLBg7W6wCeay1ZciUv8vpBv923HcFzEM3DFgzLCD1jpA_o6W9pIo1FD_ztUeuexBZ-m5YEuz9vwXJ9QAp_


二.MD5值的生成步骤:

1》MD5的生成工具:MD5Calc.exe


2》MD5软件的下载地址:http://pan.baidu.com/share/link?shareid=1611929352&uk=637640919&fid=3983931181

       下载下来之后直接就可以用了。


3》MD5软件生成相应的MD5值:

以octopus_G03的差分包为例:

将G03的差分包直接拖入MD5值生成软件;将生成的MD5值给到编写差分包对应xml的文件中。




三.MD5的工具类

package com.zhcgwc.otaupdate;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import android.util.Log;

public class MD5 {
	static String TAG = "MD5";

	private static String createMd5(String str) {
		MessageDigest mMDigest;
		FileInputStream Input;
		File file = new File(str);
		byte buffer[] = new byte[1024];
		int len;
		if (!file.exists())
			return null;
		try {
			mMDigest = MessageDigest.getInstance("MD5");
			Input = new FileInputStream(file);
			while ((len = Input.read(buffer, 0, 1024)) != -1) {
				mMDigest.update(buffer, 0, len);
			}
			Input.close();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
		BigInteger mBInteger = new BigInteger(1, mMDigest.digest());
		Log.v(TAG, "create_MD5=" + mBInteger.toString(16));
		return mBInteger.toString(16);

	}

	public static boolean checkMd5(String Md5, String file) {
		String str = createMd5(file);
		Log.d(TAG, "md5sum = " + str);
		if (Md5.compareTo(str) == 0)
			return true;
		else
			return false;
	}
}


四.MD5在Android应用开发中使用:

MD值的校验

	File file = new File("/mnt/sdcard/ota.zip");
			if (file.exists()
					&& MD5.checkMd5(mPrefs.getMd5(),UpdateService.DOWNLOAD_OTA_PATH)) {//如果目标文件位置已经存在,MD5校验通过
				。。。。。。
			}


猜你喜欢

转载自blog.csdn.net/ningchao328/article/details/52797823