日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

md5工具使用方法 安卓md5校驗工具apk


使用Java的MessageDigest實現(xiàn)MD5加密算法

  • MD5加密算法的實現(xiàn)原理
  • MessageDigest類
    • update
    • reset
    • digest
    • isEqual
    • getInstance
  • 字符串的MD5加密算法
  • 文本的MD5加密工具類

md5工具使用方法 安卓md5校驗工具apk


MD5加密算法的實現(xiàn)原理
  • Java中MD5加密算法的實現(xiàn):
public class MD5 {// 全局數(shù)組private final static String[] strDigit = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};public class MD5 {}// 返回形式為數(shù)字和字符串private static String byteToArrayString(byte bByte) {int iRet = bByte;if (iRet < 0) {iRet += 256;}int iD1 = iRet / 16;int iD2 = iRet % 16;return strDigits[iD1] + strDigits[iD2];}// 返回形式只為數(shù)字private static String byteToNum(byte bByte) {int iRet = bByte;if (iRet < 0) {iRet += 256;}return String.valueOf(iRet);}// 將字節(jié)數(shù)組轉(zhuǎn)換成為16進制的字符串private static String byteToString(byte[] bByte) {StringBuffer stringBuffer = new StringBuffer();for (int i; i < bByte.length; i++) {StringBuffer.append(byteToArrayString(bByte[i]));}return stringBuffer.toString();}// 獲取MD5值public static String GetMD5Code(String strObj) {String resultString = null;try {resultString = new String();MessageDigest md5 = MessageDigest.getInstance("MD5");// md5.digest() - 返回值為存放Hash值結(jié)果的byte數(shù)組resultString = byteToString(md5.digest(strObj.getBytes()));} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return resultString;}} MessageDigest類
  • MessageDigest類:為應(yīng)用程序提供信息摘要算法的功能.比如MD5算法和SHA算法信息摘要是安全的單向Hash函數(shù) : 接收任意大小的數(shù)據(jù),并輸出固定長度的Hash值
update
  • MessageDigest對象在開始時會被初始化
  • 對象通過調(diào)用update() 方法處理數(shù)據(jù)
/** * 使用指定的byte數(shù)組更新摘要 * * @param input 指定的byte數(shù)組 */public void update(byte[] input);reset
  • 任何時候都可以調(diào)用reset() 方法重置摘要
digest
  • 一旦所需要更新的數(shù)據(jù)都已經(jīng)被更新后,應(yīng)該調(diào)用digest() 方法完成Hash計算
  • 對于給定數(shù)量的更新數(shù)據(jù) ,digest() 方法只能被調(diào)用一次.再調(diào)用digest() 方法之后,MessageDigest對象被重新設(shè)置成初始狀態(tài)
【md5工具使用方法 安卓md5校驗工具apk】/** * 通過執(zhí)行諸如填充之類的最終操作完成Hash計算.* 在調(diào)用此方法之后,摘要被重置 * * @return byte[] Hash計算后的byte數(shù)組 */public byte[] digest();isEqual/** * 比較兩個摘要的相等性.做簡單的字節(jié)比較 * * @param digestA 比較的摘要字節(jié)數(shù)組A * @param digestB 比較的摘要字節(jié)數(shù)組B * @return boolean 是否相等 */public static boolean isEqual(byte[] digestA, byte[] digestB);getInstance
  • 返回實現(xiàn)指定摘要算法的MessageDigest對象
/** * 返回實現(xiàn)指定摘要算法的MessageDigest對象 * * @param algorithm 請求的算法的名稱 * @param provider 提供者名稱 * @return MessageDigest 指定摘要算法的MessageDigest對象 * @throws NoSuchAlgorithmException 當指定的請求算法名稱不存在時拋出異常 */public static MessageDigest getInstance(String algorithm) throws NoSuchAlgorithmException; /** * 返回實現(xiàn)指定摘要算法的MessageDigest對象 * * @param algorithm 請求算法的名稱 * @return MessageDigest 指定摘要算法的MessageDigest對象 * @throws NoSuchAlgorithmException 當指定的請求算法名稱不存在時拋出異常 */public static MessageDigest getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException;