在開發程式期間我們常需要確認檔案的正確性, 無論是在網路傳送中有沒有被更改,或是檔案是不是同一個等等, 這時我們會需要 hash(雜湊) 或 digest(摘要) 來幫忙。 同樣的內容或檔案經過相同的 hash 演算法後會得到相同的結果, 這樣就可以確認我們得到的是正確的檔案, 上面的用法就是我們常聽到的 HMAC(Hash-based Message Authentication Code)。 在 Java 中已內建有一些 hash 演算法如:MD5 想知道該怎麼用最基本的 hash 可見 Java 官方的教學: Java:HMAC-MD5 Example 然而我們總是會需要用到用更多種的演算法, 因此今天要介紹的就是一個支援多種 hash code 的套件: gnu-crypto 。 這個套件的官網連結為: GNU Crypto - GNU Project - Free Software Foundation (FSF) , 其支援的 hash 有: Whirlpool 、 SHA-160, SHA-256, SHA-384, and SHA-512 、 MD5 等, 更詳細的內容可見: http://www.gnu.org/software/gnu-crypto/algorithms.html 中的Message digest (hash)。 以下就是簡單的程式範例,其 hash 結果已經放在註解中: package demo . digest ; import java . security . MessageDigest ; import java . security . Security ; /** * Java:計算 MD5, SHA, WHIRLPOOL等雜湊碼 hash code的程式教學 * * @author werdna at http://werdna1222coldcodes.blogspot.com/ */ public class DigestDemo { // 本文應用的套件為:gnu-crypto-2.0.1 // GNU Crypto - GNU Project - Free Software Foundation (FSF) // http://www.gnu.org/softwa...