JCA 實(shí)踐記錄—— MessageDigest

MessageDigest 用于計(jì)算指定數(shù)據(jù)的消息摘要(散列)。

實(shí)例化

MessageDigest沒有公開的構(gòu)造方法,所以只能調(diào)用其靜態(tài)方法getInstace進(jìn)行實(shí)現(xiàn)化。這個(gè)方法有多個(gè)重載如下:

public static MessageDigest getInstance(String algorithm)
    throws NoSuchAlgorithmException;

public static MessageDigest getInstance(String algorithm,Provider provider)
    throws NoSuchAlgorithmException

public static MessageDigest getInstance(String algorithm, String provider)
    throws NoSuchAlgorithmException, NoSuchProviderException;

我們通常使用的是public static MessageDigest getInstance(String algorithm);此方法需要一個(gè)字符串作為參數(shù),用于說明使用哪個(gè)消息摘要算法。

方法說明

  1. public void update(byte[] input);
    public void update(byte input);
    public void update(byte[] input, int offset, int len);
    public final void update(ByteBuffer input)
    使用指定信息更新摘要;(相當(dāng)于把各次update調(diào)用傳入的信息順次連接后計(jì)算摘要)

  2. public void reset();
    重置摘要;(相當(dāng)于把之前各次update調(diào)用傳入的信息全部清空了)

  3. public byte[] digest();
    public int digest(byte[] buf, int offset, int len) throws DigestException;
    public byte[] digest(byte[] input);
    獲取摘要,并重置摘要;(如果有參數(shù),則會(huì)先使用參數(shù)調(diào)用update,然后再調(diào)用無參的digest

  4. public final String getAlgorithm();
    獲取當(dāng)前MessageDigest使用的算法;

目前JDK8默認(rèn)支持的算法(不區(qū)分大小寫)

  1. MD2
  2. MD5
  3. SHA(SHA-1)
  4. SHA-1
  5. SHA-224
  6. SHA-256
  7. SHA-384
  8. SHA-512
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容