Java MD5獲取

MD5算法具備如下特色:
一、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。
二、容易計算:從原數據計算出MD5值很容易。
三、抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所獲得的MD5值都有很大區別。
四、強抗碰撞:已知原數據和其MD5值,想找到一個具備相同MD5值的數據(即僞造數據)是很是困難的。
MD5的做用是讓大容量信息在用 數字簽名軟件簽署私人 密鑰前被" 壓縮"成一種保密的格式(就是把一個任意長度的字節串變換成必定長的 十六進制數字串)。除了MD5之外,其中比較有名的還有 sha-1RIPEMD以及Haval等。
 
MD5 是非對稱的加密算法(PS:對稱加密就是加密用的密碼和解密用的密碼是同樣的,非對稱就是加密和解密用的密鑰不同)。
 

maven 引入apache的jar(不是maven項目,去網上下一個jar手動引入)java

<dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-lang3</artifactId>
     <version>3.3.2</version>
</dependency>

代碼:算法

import java.security.MessageDigest;

public static String getmd5(String mesage){

  String digest=null;

  MessageDigest md;

   try{

    md=MessageDigest.getInstance("MD5");
    byte[] hash=md.digest(mesage.getBytes("UTF-8"));
    StringBuilder sb=new StringBuilder(2*hash.length);
    for(byte b:hash){

      sb.append(String.format("%02x",b&0xff));

    }
    digest =sb.toString();
  } catch(NoSuchAlgorithmException | UnsupportedEncodingException e){

    e.printStackTrace();

  }

  return digest;

}
相關文章
相關標籤/搜索