md5的典型應用是對一段message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在乙個叫 readme.txt檔案中,並對這個readme.txt產生乙個md5的值並記錄在案,然後你可以傳播這個檔案給別人,別人如果修改了檔案中的任何內容,你對這個檔案重新計算md5時就會發現(兩個md5值不相同)。如果再有乙個第三方的認證機構,用md5還可以防止檔案作者的「抵賴」,這就是所謂的數字簽名應用。
/**
* md5加密方式(1)
* @param message
* @return
* @throws nosuchalgorithmexception
* @throws unsupportedencodingexception
*/public static string md5encode(string message) throws nosuchalgorithmexception, unsupportedencodingexception
}//標準的md5加密後的結果
return buffer.tostring().touppercase();
}
/**
* 普通的md5加密方式(2)
* @param message
* @return
* @throws unsupportedencodingexception
* @throws nosuchalgorithmexception
*/public static string publicmd5encode(string message) throws unsupportedencodingexception, nosuchalgorithmexception ;
byte result = message.getbytes("utf-8");
//獲得md5摘要演算法的 messagedigest物件
messagedigest md5digest = messagedigest.getinstance("md5");
//使用指定的位元組更新摘要
md5digest.update(result);
//獲得密文
byte md = md5digest.digest();
int j = md.length;
char str = new char[j*2];
int k = 0;
for(int i=0;i>4&0xf];
str[k++] = haxdigests[byte0&0xf];
} return new string(str);
}
public static void main(string args) catch (exception e)
system.out.println("方式1:"+md5);//e94e8bd35fc8144f38fd1ebc1f81ab36
system.out.println("方式2:"+pmd5);//e94e8bd35fc8144f38fd1ebc1f81ab36
}
注意:message.getbytes("utf-8"),將字串變為位元組陣列的時候,需要設定乙個編碼格式,如果不設定的很可能導致生成的md5加密結果與其他人生成的加密結果不一致
參考:
MD5 密碼加密
asp.net中md5加密碼的方法 page language c contenttype text html import namespace system asp.net中實現對密碼的加密 方法一 public static string encrypt string password,int ...
Shiro密碼的MD5加密 MD5鹽值加密
用md5加密演算法後,前台使用者輸入的字串如何使用md5加密,需要做的是將當前的realm 的credentialsmatcher屬性,替換為md5credentialsmatcher 由於md5credentialsmatcher已經過期了,推薦使用hashedcredentialsmatcher...
Md5加密Java實現
實現方法有 1.對已經進行過md5加密的資料再次進行md5加密。2.對原有資料加一串其他字元來使其變得複雜也可以做到不能被解碼。所加字串一般是已經協商好的 1 壓縮性 任意長度的資料,算出的md5值長度都是固定的。2 容易計算 從原資料計算出md5值很容易。3 不可逆 對原資料進行任何改動,哪怕只修...