MessageDigest 是 Java 中的一個類,它提供了一種不可逆的哈希算法,用于計算給定輸入數據的摘要(或稱為哈希值)。
MessageDigest 類的主要功能包括:
提供多種哈希算法:MessageDigest 類支持多種哈希算法,如 MD5、SHA-1、SHA-256 等??梢允褂?getInstance 方法來獲取指定算法的 MessageDigest 實例。
計算哈希值:通過調用 MessageDigest 實例的 update 方法,可以向其輸入數據。然后,通過調用 digest 方法,可以計算出輸入數據的哈希值。digest 方法返回一個字節數組,表示計算得到的哈希值。
支持多次輸入數據:可以多次調用 update 方法,將多塊數據輸入到 MessageDigest 實例中。最后調用 digest 方法計算哈希值時,會將所有輸入數據合并到一起進行計算。
重用實例:MessageDigest 實例在計算完一次哈希值后,并不會自動重置為初始狀態??梢酝ㄟ^調用 reset 方法,重置 MessageDigest 實例,以便重用。
下面是一個簡單的示例代碼,展示了如何使用 MessageDigest 類計算輸入字符串的 SHA-256 哈希值:
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MessageDigestExample { public static void main(String[] args) { String input = "Hello, World!"; try { // 獲取 SHA-256 哈希算法的 MessageDigest 實例 MessageDigest md = MessageDigest.getInstance("SHA-256"); // 將輸入字符串轉換為字節數組,并輸入到 MessageDigest 實例中 md.update(input.getBytes()); // 計算哈希值并獲取結果 byte[] digest = md.digest(); // 將字節數組轉換為十六進制字符串 StringBuilder sb = new StringBuilder(); for (byte b : digest) { sb.append(String.format("%02x", b)); } String hashedInput = sb.toString(); System.out.println("Input: " + input); System.out.println("Hashed Input: " + hashedInput); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } }}
以上代碼通過調用 MessageDigest.getInstance 方法獲取 SHA-256 哈希算法的 MessageDigest 實例。然后,將輸入字符串轉換為字節數組,并通過調用 update 方法輸入到 MessageDigest 實例中。最后,通過調用 digest 方法獲取計算得到的哈希值,并將其轉換為十六進制字符串進行輸出。
需要注意的是,MessageDigest 類不是線程安全的,如果需要在多線程環境下使用,應當為每個線程創建一個獨立的 MessageDigest 實例。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖片僅供參考)最近小編看到大家都在討論管寧華歆是個什么樣的人相關的事情,對此呢小編也是非常的感應興趣,那么這件事究竟是怎么發生的呢?具體又是怎么回事呢?下面就是小編搜索到的關于管寧華歆是個什么樣的人事件的相關信息,我們一起來看一下吧!1、管寧的特點——淡泊名利,性淡氣清,愛憎分明。管寧,字幼安。北??ぶ焯摽h人。與華歆、邴原并稱為"一龍"。漢末天下大亂時,與邴原及王烈等人至遼東避亂。在當地只談...
(資料圖片)關于ATIHD4500是什么顯卡的知識大家了解嗎?以下就是小編整理的關于ATIHD4500是什么顯卡的介紹,希望可以給到大家一些參考,一起來了解下吧!是筆記本的獨立顯卡。ATI HD4500參數如下:1、核心頻率800MHz。2、擁有120個流處理器。3、支持DX10、1、SM4、1、PowerPlay 2、0、游戲物理加速、動態幾何加速、24X CFAA反鋸齒等技術。4、使用了新版視...
新手怎么小額理財賺錢?新手可以通過以下小額理財來賺錢:1、基金定投基金定投是指在固定的時間以固定的金額投資到指定的開放式基金中,投資者可以選擇每周,或者每月定投幾百元的基金,以時間來換取收益。2、可轉債可轉債與國債不同,它一般是上市公司為了融資所發行的一種債券,具有債券和股票雙重屬性,投資者在可轉債發行時,可以進行申購操作,一般中簽一手為1000元,其門檻較低,風險,相對于股票來說低得多,大部分可...