jmeter-Java關於MD5加密方法 以及16位32位互轉

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用於確保信息傳輸完整一致。是計算機普遍使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言廣泛已有MD5實現。將數據(如漢字)運算爲另外一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD二、MD3和MD4。普遍用於加密和解密技術,經常使用於文件校驗。校驗?無論文件多大,通過MD5後都能生成惟一的MD5值。比如如今的ISO校驗,都是MD5校驗。怎麼用?固然是把ISO通過MD5後產生MD5的值。通常下載linux-ISO的朋友都見過下載連接旁邊放着MD5的串。就是用來驗證文件是否一致的。java

小編在平常使用中發現,MD5加密有多種,而第三方只會告訴你他們使用的是MD5加密並不會告訴你是那種方法。所以小編在這裏提供小編在平常使用過的兩種方法:linux

第一種:算法

package hehe.md5;編程

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;app

public class Str2MD5 {
public String MD5(String sourceStr) {



String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(sourceStr.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
//buf.append(String.format("%02X", b[offset]));
}
result = buf.toString();
// String a = result.toUpperCase();
// System.out.println("MD5(" + sourceStr + ",32) = " + result);
// System.out.println("MD5 32大寫:"+a);
// System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));



} catch (NoSuchAlgorithmException e) {
System.out.println(e);
}
return result;
}
編程語言

}加密

第二種:先寫一個Util類orm

  public static String toHexString(byte[] bytes) {
         StringBuffer buffer = new StringBuffer();
         for (int i = 0; i < bytes.length; i++) {
             buffer.append(String.format("%02X", bytes[i]));
         }
         return buffer.toString();
    }
 
 public static void main(String[] args) throws UnsupportedEncodingException, NoSuchAlgorithmException  {
String a ="";
MessageDigest md5Tool = MessageDigest.getInstance("MD5");
         byte[] md5Data = md5Tool.digest(a.toString()).getBytes("UTF-8"));
         String sn = Util.toHexString(md5Data);

}md5

 

關於MD5 的大小寫轉換以及 32位於16位可使用 toUpperCase()  toLowerCase()   substring(8, 24)   來進行轉換,還有16位加密根據甲方的要求來截取get

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