- java.lang.Object
 -  
      
- java.security.MessageDigestSpi
 
 
-  
       
- 已知直接子类:
 -  
         
MessageDigest 
public abstract class MessageDigestSpi extends Object
此类为MessageDigest类定义 ( SPI ),该类提供消息摘要算法的功能,例如MD5或SHA。 消息摘要是安全的单向散列函数,它采用任意大小的数据并输出固定长度的散列值。此类中的所有抽象方法必须由希望提供特定消息摘要算法的实现的加密服务提供者实现。
实现可以自由地实现Cloneable接口。
- 从以下版本开始:
 - 1.2
 - 另请参见:
 -  
         
MessageDigest 
 
-  
        
       
-  
             
构造方法摘要
构造方法 构造器 描述 MessageDigestSpi() 
-  
             
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Objectclone()如果实现是可复制的,则返回克隆。protected abstract byte[]engineDigest()通过执行填充等最终操作来完成哈希计算。protected intengineDigest(byte[] buf, int offset, int len)通过执行填充等最终操作来完成哈希计算。protected intengineGetDigestLength()以字节为单位返回摘要长度。protected abstract voidengineReset()重置摘要以供进一步使用。protected abstract voidengineUpdate(byte input)使用指定的字节更新摘要。protected abstract voidengineUpdate(byte[] input, int offset, int len)使用指定的字节数组更新摘要,从指定的偏移量开始。protected voidengineUpdate(ByteBuffer input)使用指定的ByteBuffer更新摘要。 
 -  
             
 
-  
        
       
-  
             
方法详细信息
-  
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
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()
重置摘要以供进一步使用。 
-  
clone
public Object clone() throws CloneNotSupportedException
如果实现是可复制的,则返回克隆。- 重写:
 -  
              
clone在课程Object - 结果
 - 如果实现是可复制的,则为克隆。
 - 异常
 -  
              
CloneNotSupportedException- 如果在不支持Cloneable的实现上调用此方法。 - 另请参见:
 -  
              
Cloneable 
 
 -  
 
 -