MD5加密以及產生唯一的ID


 

1:MD5即Message-Digest Algorithm 5(信息摘要算法5),是計算機廣泛使用的散列算法之一(又譯摘要算法、哈希算法)。經MD2、MD3和MD4發展而來,誕生於20世紀90年代初。用於確保信息傳輸完整一致。

MD5加密算法由於其具有較好的安全性,加之商業也可以免費使用該算法,因此該加密算法被廣泛使用。MD5算法主要運用在數字簽名、文件完整性驗證以及口令加密等方面。

對信息系統或者網站系統來說,MD5算法主要用在用戶注冊口令的加密,對於普通強度的口令加密,可以通過以下三種方式進行破解:

(1)在線查詢密碼。一些在線的MD5值查詢網站提供MD5密碼值的查詢,輸入MD5密碼值后,如果在數據庫中存在,那么可以很快獲取其密碼值。

(2)使用MD5破解工具。網絡上有許多針對MD5破解的專用軟件,通過設置字典來進行破解。

(3)通過社會工程學來獲取或者重新設置用戶的口令。 因此簡單的MD5加密是沒有辦法達到絕對的安全的,因為普通的MD5加密有多種暴力破解方式,因此如果想要保證信息系統或者網站的安全,需要對MD5進行改造,增強其安全性。但對於公司以及普通用戶來說,從算法上來破解MD5非常困難,因此MD5仍然算是一種安全的算法。

2:產生全世界唯一的id

 

3:實現代碼如下:

 

Md5
package com.zyw.md5;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;//不過這些包是不建議使用的。。  需要使用自己的jdk
public class Md5 {
    public static String md5(String messages){
        try {
            MessageDigest md=MessageDigest.getInstance("md5");
            byte[] md5=    md.digest();
            
            //轉化為明文
            BASE64Encoder encoder=new BASE64Encoder();
            return encoder.encode(md5);
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
        
    }
}

 

Snippet
package com.zyw.md5;

import java.util.UUID;

public class Snippet {
    //產生全世界唯一的id
        public static String generateID(){        
            return UUID.randomUUID().toString();
        }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM