模块  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()
        重置摘要以供进一步使用。