java.security.MessageDigest的使用

我們知道,編程中數據的傳輸,保存,爲了考慮安全性的問題,需要將數據進行加密.我們拿數據庫做例子.如果一個用戶註冊系統的數據庫,沒有對用戶的信息進行保存,如,我去頁面註冊,輸入"Vicky","123456".註冊.web服務器未對數據進行加密而直接寫入數據庫,那麼數據庫中的用戶信息,便是一個直接可用的數據!一旦服務器服務器被黑~那麼用戶的信息將毫無保留的展現在黑客面前...爲了解決這個弊端,現在大多數都會將信息進行MD5加密.如"Vicky"與"123456"加密後,會生成16位或者32位字符串.而黑客即便獲得這些數據也無法使用...

    MD5是常用的加密方法,這裏主要講述JDK中的java.security.MessageDigest加密方式!

打印的是:[B@107077e,這是因爲輸出的是byte[](messageDigest.digest()得到的是個二進制byte數組,有可能某些byte是不可打印的字符。)...我們可以使用Base64來處理byte[]

打印的是:AgwpBZPO+ErqxOosJp0ybQ== 

當然我們可以編寫函數,處理二進制轉hex字符串.

如:


打印:020c290593cef84aeac4ea2c269d326d,返回的是32位的字符串!!!

這樣我們便可以直接使用JDK爲我們提供的加密類與函數了!

MessageDigest不僅僅只爲我們提供了"MD5"加密,還提供了"SHA-1"

創建的方法只爲: MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");

MD5與SHA-1的區別爲:MD5是16位,SHA是20位(這是兩種報文摘要的算法)

難道 MessageDigest 只能用作數據加密嗎?如何使用MessageDigest生成安全令牌!!!

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/eclipser1987/archive/2010/01/08/5158784.aspx

發佈了19 篇原創文章 · 獲贊 3 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章