Module  java.base
软件包  java.security

Class MessageDigestSpi

  • 已知直接子类:
    MessageDigest


    public abstract class MessageDigestSpi
    extends Object
    该类为MessageDigest类定义了 ( SPI ),它提供消息摘要算法(如MD5或SHA)的功能。 消息摘要是采用任意大小的数据并输出固定长度散列值的安全单向散列函数。

    该类中的所有抽象方法必须由希望提供特定消息摘要算法的实现的加密服务提供者来实现。

    实现可以实现Cloneable接口。

    从以下版本开始:
    1.2
    另请参见:
    MessageDigest
    • 构造方法详细信息

      • MessageDigestSpi

        public MessageDigestSpi​()
    • 方法详细信息

      • engineGetDigestLength

        protected int engineGetDigestLength​()
        以字节为单位返回摘要长度。

        这个具体的方法已经添加到这个以前定义的抽象类中。 (为了向后兼容,它不能是抽象的。)

        默认行为是返回0。

        该方法可能被提供者覆盖以返回摘要长度。

        结果
        摘要长度以字节为单位。
        从以下版本开始:
        1.2
      • engineUpdate

        protected abstract void engineUpdate​(byte input)
        使用指定的字节更新摘要。
        参数
        input - 用于更新的字节。
      • engineUpdate

        protected abstract void engineUpdate​(byte[] input,
                                             int offset,
                                             int len)
        使用指定的字节数组从指定的偏移量开始更新摘要。
        参数
        input - 用于更新的字节数组。
        offset - 从字节数组开始的偏移量。
        len - 要使用的字节数,从 offset开始。
      • engineUpdate

        protected void engineUpdate​(ByteBuffer input)
        使用指定的ByteBuffer更新摘要。 摘要采用更新的input.remaining()起始字节input.position() 返回时,缓冲区的位置将等于其限制; 其限制将不会改变。
        参数
        input - ByteBuffer
        从以下版本开始:
        1.5
      • engineDigest

        protected abstract byte[] engineDigest​()
        通过执行最后的操作(如填充)来完成哈希计算。 一旦engineDigest ,引擎应该被复位(见engineReset )。 重置是引擎执行者的责任。
        结果
        用于生成的哈希值的字节数组。
      • engineDigest

        protected int engineDigest​(byte[] buf,
                                   int offset,
                                   int len)
                            throws DigestException
        通过执行最后的操作(如填充)来完成哈希计算。 一旦engineDigest ,引擎应该被复位(见engineReset )。 重置是引擎执行者的责任。 这种方法应该是抽象的,但是我们留下具体的二进制兼容性。 有知识的提供者应该覆盖这种方法。
        参数
        buf - 存储摘要的输出缓冲区
        offset - 从输出缓冲区中启动的偏移量
        len - 为摘要分配的buf内的字节数。 这个默认实现和SUN提供者都不返回部分摘要。 这个参数的存在仅仅是为了我们的API的一致性。 如果该参数的值小于实际的摘要长度,该方法将抛出一个DigestException。 如果该值大于或等于实际摘要长度,则忽略此参数。
        结果
        摘要存储在输出缓冲区中的长度。
        异常
        DigestException - 如果发生错误。
        从以下版本开始:
        1.2
      • engineReset

        protected abstract void engineReset​()
        重置摘要以供进一步使用。