java中使用MD5進行加密

2021-08-29 08:12:28 字數 1511 閱讀 3978

在各種應用系統的開發中,經常需要儲存使用者資訊,很多地方都要儲存使用者密碼,而將使用者密碼直接儲存在伺服器上顯然是不安全的,本文簡要介紹工作中常用的 md5加密演算法,希望能拋磚引玉。

(一)訊息摘要簡介

乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印(對於sha1是產生乙個20位元組的二進位制陣列)。訊息摘要是

一種與訊息認證碼結合使用以確保訊息完整性的技術。主要使用單向雜湊函式演算法,可用於檢驗訊息的完整性,和通過雜湊密碼直接以文字形式儲存等,目前廣泛使用的演算法有md4、md5、sha-1。

訊息摘要有兩個基本屬性:

兩個不同的報文難以生成相同的摘要

難以對指定的摘要生成乙個報文,而可以由該報文反推算出該指定的摘要

代表:美國國家標準技術研究所的sha1和麻省理工學院ronald rivest提出的md5

(二)對字串進行加密

/***/

/**利用md5進行加密

@param

str待加密的字串

@return

加密後的字串

@throws

nosuchalgorithmexception沒有這種產生訊息摘要的演算法

@throws

unsupportedencodingexception

*/public

stringencoderbymd5(stringstr)

throws

nosuchalgorithmexception,unsupportedencodingexception

...

呼叫函式:

string str="0123456789"

system.out.println(encoderbymd5(str));

輸出:eb5ejf1ptwaxm4bijspyxw==

(三)驗證密碼是否正確

因為md5是基於訊息摘要原理的,訊息摘要的基本特徵就是很難根據摘要推算出訊息報文,因此要驗證密碼是否正確,就必須對輸入密碼(訊息報文)重新計算其摘要,和資料庫中儲存的摘要進行對比

(即資料庫中儲存的其實為使用者密碼的摘要),若兩個摘要相同,則說明密碼正確,不同,則說明密碼錯誤。

/***/

/**判斷使用者密碼是否正確

@param

newpasswd使用者輸入的密碼

@param

oldpasswd資料庫中儲存的密碼--使用者密碼的摘要

@return

@throws

nosuchalgorithmexception

@throws

unsupportedencodingexception

*/

public

boolean

checkpassword(stringnewpasswd,stringoldpasswd)

throws

nosuchalgorithmexception,unsupportedencodingexception

...

java中使用MD5進行加密

在各種應用系統的開發中,經常需要儲存使用者資訊,很多地方都要儲存使用者密碼,而將使用者密碼直接儲存在伺服器上顯然是不安全的,本文簡要介紹工作中常用的 md5加密演算法,希望能拋磚引玉。一 訊息摘要簡介 乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印 對於...

java中使用MD5進行加密

在各種應用系統的開發中,經常需要儲存使用者資訊,很多地方都要儲存使用者密碼,而將使用者密碼直接儲存在伺服器上顯然是不安全的,本文簡要介紹工作中常用的 md5加密演算法,希望能拋磚引玉。一 訊息摘要簡介 乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印 對於...

java中使用MD5進行加密

在各種應用系統的開發中,經常需要儲存使用者資訊,很多地方都要儲存使用者密碼,而將使用者密碼直接儲存在伺服器上顯然是不安全的,本文簡要介紹工作中常用的 md5加密演算法,希望能拋磚引玉。一 訊息摘要簡介 乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印 對於...