Java實現MD5(32/16位大小寫)加密

##MD5簡單介紹 你們都知道,地球上任何人都有本身獨一無二的指紋,這經常成爲公安機關鑑別罪犯身份最值得信賴的方法;與之相似,MD5就能夠爲任何文件(無論其大小、格式、數量)產生一個一樣獨一無二的「數字指紋」,若是任何人對文件名作了任何改動,其MD5值也就是對應的「數字指紋」就會發生變化。 ##MD5能夠解密嗎? MD5加密原理是散列算法,散列算法也稱哈希算法。 好比10除以3餘數爲一,4除以3餘數也爲一,但餘數爲一的就不知道這個數是哪一個了。 因此md5不能解密。也是爲何扣扣密碼只能重置,不能找回的緣由。 ##上代碼java

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
	//待加密的密碼
	public static String password = "zjb0425";
	
	public static void main(String args[]) {
		//結果字符串
		String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(password.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            result = buf.toString();
            System.out.println("MD5(" + password + ",32小寫) = " + result);
            System.out.println("MD5(" + password + ",32大寫) = " + result.toUpperCase());
            System.out.println("++++++++++++++++++++++++各位大哥借過+++++++++++++++++++++++");
            System.out.println("MD5(" + password + ",16小寫) = " + buf.toString().substring(8, 24));
            System.out.println("MD5(" + password + ",16大寫) = " + buf.toString().substring(8, 24).toUpperCase());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
	}
}

##代碼結果算法

MD5(zjb0425,32小寫) = 8e31ec4e3c3ae689b164f8ab7b1721f2 MD5(zjb0425,32大寫) = 8E31EC4E3C3AE689B164F8AB7B1721F2 ++++++++++++++++++++++++各位大哥借過+++++++++++++++++++++++ MD5(zjb0425,16小寫) = 3c3ae689b164f8ab MD5(zjb0425,16大寫) = 3C3AE689B164F8ABapp

相關文章
相關標籤/搜索