使用Md5 的加密方式 ,對字符串進行加密

Md5 加密方式 對字符串進行加密

public class Md5Utils {
 private static String EncoderByMd5(String str) {
  try {
// 生成實現指定摘要算法的 MessageDigest 對象。
   MessageDigest md = MessageDigest.getInstance("MD5");
   // 先將字符串轉換成字節數組,然後使用字節數組更新摘要
       md.update(str.getBytes());
   // 通過執行諸如填充之類的最終操作完成哈希計算。
       byte[] encryContext = md.digest();
       int i;
       StringBuffer buf = new StringBuffer("");
   // 
       for (int offset = 0; offset < encryContext.length; offset++) {
                i = encryContext[offset];
                if (i < 0)
                     i += 256;
                if (i < 16)
                     buf.append("0");
                buf.append(Integer.toHexString(i)); //16進制的加密方式
           }
       return buf.toString();
      } catch (Exception e) {
               e.printStackTrace();
      }
          return null;
     }
//兩次調用加密方法對字符串進行加密
//如果爲了防止被反編譯破解,可以對第一次的MD5加密碼進行截取,然後再加密截取的部分。
 public static String getMd5Str(String str) {
  return EncoderByMd5(EncoderByMd5(str));
 }

}

注意:
1、
java.security.MessageDigest類用於爲應用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。
簡單點說就是用於生成散列碼
信息摘要是安全的單向哈希函數,它接收任意大小的數據,輸出固定長度的哈希值。

2、

MessageDigest 通過其getInstance系列靜態函數來進行實例化和初始化。

MessageDigest 對象通過使用 update 方法處理數據。

任何時候都可以調用 reset 方法重置摘要。一旦所有需要更新的數據都已經被更新了,

應該調用 digest 方法之一完成哈希計算並返回結果。


3、

對於給定數量的更新數據,digest 方法只能被調用一次。

digest 方法被調用後,MessageDigest  對象被重新設置成其初始狀態。


4、

java.security.MessageDigest類的網址

http://hubingforever.blog.163.com/blog/static/171040579201210781650340/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章