美文网首页
JCA 实践记录—— MessageDigest

JCA 实践记录—— MessageDigest

作者: JSON_NULL | 来源:发表于2019-01-23 17:40 被阅读14次

    MessageDigest 用于计算指定数据的消息摘要(散列)。

    实例化

    MessageDigest没有公开的构造方法,所以只能调用其静态方法getInstace进行实现化。这个方法有多个重载如下:

    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);此方法需要一个字符串作为参数,用于说明使用哪个消息摘要算法。

    方法说明

    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)
      使用指定信息更新摘要;(相当于把各次update调用传入的信息顺次连接后计算摘要)

    2. public void reset();
      重置摘要;(相当于把之前各次update调用传入的信息全部清空了)

    3. public byte[] digest();
      public int digest(byte[] buf, int offset, int len) throws DigestException;
      public byte[] digest(byte[] input);
      获取摘要,并重置摘要;(如果有参数,则会先使用参数调用update,然后再调用无参的digest

    4. public final String getAlgorithm();
      获取当前MessageDigest使用的算法;

    目前JDK8默认支持的算法(不区分大小写)

    1. MD2
    2. MD5
    3. SHA(SHA-1)
    4. SHA-1
    5. SHA-224
    6. SHA-256
    7. SHA-384
    8. SHA-512

    相关文章

      网友评论

          本文标题:JCA 实践记录—— MessageDigest

          本文链接:https://www.haomeiwen.com/subject/odbjjqtx.html