public abstract class MessageDigestSpi
extends Object
java.lang.Object | |
↳ | java.security.MessageDigestSpi |
Known Direct Subclasses |
此类为MessageDigest
类定义 ( SPI ),该类提供消息摘要算法的功能,例如MD5或SHA。 消息摘要是安全的单向散列函数,可以采用任意大小的数据并输出固定长度的散列值。
该类中的所有抽象方法必须由希望提供特定消息摘要算法的实现的加密服务提供者来实现。
实现可以自由实现Cloneable接口。
也可以看看:
Public constructors |
|
---|---|
MessageDigestSpi() |
Public methods |
|
---|---|
Object |
clone() 如果实现可复制,则返回一个克隆。 |
Protected methods |
|
---|---|
int |
engineDigest(byte[] buf, int offset, int len) 通过执行最终操作(如填充)完成散列计算。 |
abstract byte[] |
engineDigest() 通过执行最终操作(如填充)完成散列计算。 |
int |
engineGetDigestLength() 以字节为单位返回摘要长度。 |
abstract void |
engineReset() 重置摘要以供进一步使用。 |
void |
engineUpdate(ByteBuffer input) 使用指定的ByteBuffer更新摘要。 |
abstract void |
engineUpdate(byte input) 使用指定的字节更新摘要。 |
abstract void |
engineUpdate(byte[] input, int offset, int len) 使用指定的字节数组从指定的偏移量开始更新摘要。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Object clone ()
如果实现可复制,则返回一个克隆。
Returns | |
---|---|
Object |
a clone if the implementation is cloneable. |
Throws | |
---|---|
CloneNotSupportedException |
if this is called on an implementation that does not support Cloneable . |
int engineDigest (byte[] buf, int offset, int len)
通过执行最终操作(如填充)完成散列计算。 一旦engineDigest
,应该重置引擎(请参阅engineReset
)。 重置是发动机实施者的责任。 这个方法应该是抽象的,但是我们把它具体化为二进制兼容性。 有知识的提供者应该重写这个方法。
Parameters | |
---|---|
buf |
byte : the output buffer in which to store the digest |
offset |
int : offset to start from in the output buffer |
len |
int : number of bytes within buf allotted for the digest. Both this default implementation and the SUN provider do not return partial digests. The presence of this parameter is solely for consistency in our API's. If the value of this parameter is less than the actual digest length, the method will throw a DigestException. This parameter is ignored if its value is greater than or equal to the actual digest length. |
Returns | |
---|---|
int |
the length of the digest stored in the output buffer. |
Throws | |
---|---|
DigestException |
if an error occurs. |
byte[] engineDigest ()
通过执行最终操作(如填充)完成散列计算。 一旦engineDigest
,应该重置引擎(请参阅engineReset
)。 重置是发动机实施者的责任。
Returns | |
---|---|
byte[] |
the array of bytes for the resulting hash value. |
int engineGetDigestLength ()
以字节为单位返回摘要长度。
这个具体的方法已被添加到这个以前定义的抽象类。 (为了向后兼容,它不能是抽象的。)
默认行为是返回0。
提供者可以重写此方法以返回摘要长度。
Returns | |
---|---|
int |
the digest length in bytes. |
void engineUpdate (ByteBuffer input)
使用指定的ByteBuffer更新摘要。 摘要采用更新的input.remaining()
起始字节input.position()
。 返回时,缓冲区的位置将等于它的极限; 其限制不会改变。
Parameters | |
---|---|
input |
ByteBuffer : the ByteBuffer |
void engineUpdate (byte input)
使用指定的字节更新摘要。
Parameters | |
---|---|
input |
byte : the byte to use for the update. |
void engineUpdate (byte[] input, int offset, int len)
使用指定的字节数组从指定的偏移量开始更新摘要。
Parameters | |
---|---|
input |
byte : the array of bytes to use for the update. |
offset |
int : the offset to start from in the array of bytes. |
len |
int : the number of bytes to use, starting at offset . |