MD5使用

MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD二、MD三、MD4發展而來的一種單向函數算法(也就是HASH算法),它是國際著名的公鑰加密算法標準RSA的第一設計者R.Rivest於上個世紀90年代初開發出來的。MD5的最大做用在於,將不一樣格式的大容量文件信息在用數字簽名軟件來簽署私人密鑰前"壓縮"成一種保密的格式,關鍵之處在於——這種"壓縮"是不可逆的。 Java JDK已經自帶了MD5的實現,只要簡單調用下就能夠。
 
MD5,其實就是一中算法。能夠將一個字符串,或文件,或壓縮包,執行md5後,就能夠生成一個固定長度爲128bit的串。這個串,基本上是惟一的。
 
MD5較老,散列長度一般爲128位,隨着計算機運算能力提升,找到「碰撞」是可能的。所以,在安全要求高的場合不使用MD5。
 
java使用代碼:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class CreateMD5 {
    public static String getMd5(String plainTest){
        try{
            MessageDigest md = MessageDigest.getInstance("md5");
            byte[] input = plainTest.getBytes();
            md.update(input);
            byte[] b = md.digest();

            int i;

            StringBuffer sb = new StringBuffer();
            for(int k=0;k<b.length;k++){
                i=b[k];
                if(i<0){
                    i+=256;
                }
                if(i<16){
                    sb.append("0");
                }
                sb.append(Integer.toHexString(i));
            }
            //32位加密
            return sb.toString();
            //16位加密
            //return sb.toString().substring(8, 24);

        }catch(NoSuchAlgorithmException e){
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args){
        System.out.println(CreateMD5.getMd5("hello world"));
    }
}
相關文章
相關標籤/搜索