欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)MD5加密的方法

 更新時間:2015年07月24日 10:27:43   作者:fzhlee  
這篇文章主要介紹了Java實現(xiàn)MD5加密的方法,實例分析了基于java實現(xiàn)md5加密的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)MD5加密的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 
public class MD5HashUtil 
{ 
private MessageDigest md = null; 
private static MD5HashUtil md5 = null; 
private static final char[] hexChars ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 

  /** 
  * Constructor is private so you must use the getInstance method 
  */ 
  private MD5HashUtil() throws NoSuchAlgorithmException 
  { 
   md = MessageDigest.getInstance("MD5"); 
  } 
  /** 
  * This returns the singleton instance 
  */ 
 public static MD5HashUtil getInstance()throws NoSuchAlgorithmException 
 { 
   if (md5 == null) 
   { 
     md5 = new MD5HashUtil(); 
   } 
   return (md5); 
 } 
 public static String hashCode(String dataToHash) throws NoSuchAlgorithmException{ 
 return getInstance().hashData(dataToHash.getBytes()); 
 } 
 public static String hashCode(byte[] dataToHash) throws NoSuchAlgorithmException{ 
 return getInstance().hashData(dataToHash); 
 } 
public String hashData(byte[] dataToHash) { 
   return hexStringFromBytes((calculateHash(dataToHash))).toLowerCase(); 
} 
private byte[] calculateHash(byte[] dataToHash) 
{ 
   md.update(dataToHash, 0, dataToHash.length); 
   return (md.digest()); 
} 
public String hexStringFromBytes(byte[] b) 
{ 
  String hex = ""; 
  int msb; 
  int lsb = 0; 
  int i; 
  // MSB maps to idx 0 
  for (i = 0; i < b.length; i++) 
  { 
   msb = ((int)b[i] & 0x000000FF) / 16; 
   lsb = ((int)b[i] & 0x000000FF) % 16; 
    hex = hex + hexChars[msb] + hexChars[lsb]; 
  } 
   return(hex); 
} 
public static void main(String args[]) throws NoSuchAlgorithmException 
{ 
   String string = "my name is zhangli"; 
   System.out.println(string); 
   System.out.println(hashCode(string)); 
} 
} 

如上代碼為java語言實現(xiàn)md5加密算法,輸出為加密后的密文!
通常將加密后的密文保存在數(shù)據(jù)庫中,如果需要比較只比較他們的用md5加密過后的密文。

同時,md5加密算法是不可逆的,破解的難度很高,雖然有人破解了md5,但是他們所用的硬件環(huán)境不是我們普通的計算機所比擬的,山大的一位很牛的女教授也破解了md5,不過不怎么了解

希望本文所述對大家的java程序設(shè)計有所幫助。

相關(guān)文章

  • 使用Spring?AOP實現(xiàn)用戶操作日志功能

    使用Spring?AOP實現(xiàn)用戶操作日志功能

    這篇文章主要介紹了使用Spring?AOP實現(xiàn)了用戶操作日志功能,功能實現(xiàn)需要一張記錄日志的log表,結(jié)合示例代碼給大家講解的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 關(guān)于Logback+MyBatis日志輸出問題的一些思考

    關(guān)于Logback+MyBatis日志輸出問題的一些思考

    這篇文章主要介紹了關(guān)于Logback+MyBatis日志輸出問題的一些思考,具有很好的參考價值,希望對大家有所幫助,
    2023-09-09
  • java中重寫父類方法加不加@Override詳解

    java中重寫父類方法加不加@Override詳解

    這篇文章主要介紹了java中重寫父類方法加不加@Override詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java面向國際化項目開發(fā)需遵循的命名規(guī)范

    java面向國際化項目開發(fā)需遵循的命名規(guī)范

    這篇文章主要為大家介紹了在參與開發(fā)國際化項目時需遵循的java命名規(guī)范,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Mybatis批量刪除數(shù)據(jù)操作方法

    Mybatis批量刪除數(shù)據(jù)操作方法

    MyBatis的作用我想不用多說,今天說說MyBatis中的批量刪除操作。 非常不錯,感興趣的朋友一起看看吧
    2016-09-09
  • Jenkins與SVN持續(xù)集成的示例代碼

    Jenkins與SVN持續(xù)集成的示例代碼

    這篇文章主要介紹了Jenkins與SVN持續(xù)集成的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Java實現(xiàn)單例模式之餓漢式、懶漢式、枚舉式

    Java實現(xiàn)單例模式之餓漢式、懶漢式、枚舉式

    本篇文章主要介紹了Java實現(xiàn)單例的3種普遍的模式,餓漢式、懶漢式、枚舉式。具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • springboot 集成cas5.3 實現(xiàn)sso單點登錄詳細流程

    springboot 集成cas5.3 實現(xiàn)sso單點登錄詳細流程

    SSO的定義是在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。單點登錄是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一,本文給大家介紹springboot 集成cas5.3 實現(xiàn)sso單點登錄功能,感興趣的朋友一起看看吧
    2021-10-10
  • Java?NIO實現(xiàn)聊天功能

    Java?NIO實現(xiàn)聊天功能

    這篇文章主要為大家詳細介紹了Java?NIO實現(xiàn)聊天功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java實現(xiàn)驗證碼驗證功能

    Java實現(xiàn)驗證碼驗證功能

    Java如何實現(xiàn)驗證碼驗證功能呢?日常生活中,驗證碼隨處可見,他可以在一定程度上保護賬號安全,那么他是怎么實現(xiàn)的呢?今天通過本文給大家實例詳解,需要的朋友參考下
    2017-02-02

最新評論