md5算法簡介
md5(message digent algorithm 5 信息摘要算法)算法是一種單向散列算法(hash算法),是一種將任意長度的信息壓縮至某一固定長度(消息摘要)的函數(shù)。Hash函數(shù)可用于數(shù)字簽名,信息完整性檢查等用途,常見的散列算法,常見的散列算法還有sha、haval等。
md5是信息摘要算法,是不可逆的,不算是加密算法。
一個原始數(shù)據(jù)只對應1個md5值,但1個md5值可能對應多組數(shù)據(jù)
md5的作用
1.數(shù)據(jù)一致性檢驗
2.數(shù)字簽名
3.訪問認證
md5算法流程
先將輸入的信息分組,每組512位(64字節(jié)),順序處理完所有結果后輸出128位結果,將這128位用十六進制表示便是32字符的md5碼。16字符的md5編碼就是32字符MD5中間的16個字符。
java生成md5字符串
public static String getMd5(String message){
String md5str = "";
try{
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(message.getBytes());
md5str = new BigInteger(1,messageDigest.digest()).toString(16);
}catch (Exception e){
e.printStackTrace();
}
return md5str;
}