JavaTM 2 Platform
Standard Ed. 6

java.security
類別 MessageDigestSpi

java.lang.Object
  繼承者 java.security.MessageDigestSpi
直接已知子類別:
MessageDigest

public abstract class MessageDigestSpi
extends Object

此類別為 MessageDigest 類別定義服務提供者介面 (SPI),MessageDigest 類別提供資訊摘要演算法的功能,如 MD5 或 SHA。資訊摘要是安全的單向雜湊函數,它接收任意大小的資料,輸出固定長度的雜湊值。

希望提供特定資訊摘要演算法的密碼服務提供者必須實作此類別中的所有抽象方法。

實作可隨意選擇是否實作 Cloneable 介面。

另請參見:
MessageDigest

建構子摘要
MessageDigestSpi()
           
 
方法摘要
 Object clone()
          如果實作是可複製的,則返回一個副本。
protected abstract  byte[] engineDigest()
          通過執行諸如填充等之類別的最終操作完成雜湊計算。
protected  int engineDigest(byte[] buf, int offset, int len)
          通過執行諸如填充等之類別的最終操作完成雜湊計算。
protected  int engineGetDigestLength()
          返回以位元組為單位的摘要長度。
protected abstract  void engineReset()
          為進一步使用重置摘要。
protected abstract  void engineUpdate(byte input)
          使用指定的位元組更新摘要。
protected abstract  void engineUpdate(byte[] input, int offset, int len)
          使用指定的 byte 陣列,在指定的偏移量處開始更新摘要。
protected  void engineUpdate(ByteBuffer input)
          使用指定的 ByteBuffer 更新摘要。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

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)
使用指定的 byte 陣列,在指定的偏移量處開始更新摘要。

參數:
input - 用來更新的 byte 陣列。
offset - byte 陣列中的偏移量,操作從此處開始。
len - 要使用的位元組數,始於 offset

engineUpdate

protected void engineUpdate(ByteBuffer input)
使用指定的 ByteBuffer 更新摘要。使用始於 input.position() 處的 input.remaining() 個位元組更新摘要。一旦返回,該緩衝區的位置將等於它的界限;它的界限將不會更改。

參數:
input - ByteBuffer
從以下版本開始:
1.5

engineDigest

protected abstract byte[] engineDigest()
通過執行諸如填充等之類別的最終操作完成雜湊計算。一旦 engineDigest 被調用,引擎應該被重置(請參見 engineReset)。重置由引擎實作者負責。

返回:
存放雜湊值結果的 byte 陣列。

engineDigest

protected int engineDigest(byte[] buf,
                           int offset,
                           int len)
                    throws DigestException
通過執行諸如填充等之類別的最終操作完成雜湊計算。一旦 engineDigest 被調用,引擎應該被重置(請參見 engineReset)。重置由引擎實作者負責。 此方法應該是抽象的,但是為了二進制相容性使其具體。有知識的 (Knowledgeable) 的提供者應該覆寫此方法。

參數:
buf - 存儲摘要的輸出緩衝區
offset - 輸出緩衝區中的偏移量,操作從此處開始
len - 在 buf 中分派給摘要的位元組數。此預設實作和 SUN 的提供者都不返回部分摘要。使用此參數僅僅是為了在 API 中保持一致性。如果此參數的值小於實際的摘要長度,該方法將拋出 DigestException。此參數的值如果大於等於實際的摘要長度,它會被忽略。
返回:
存儲在輸出緩衝區中的摘要長度。
拋出:
DigestException - 如果發生錯誤。
從以下版本開始:
1.2

engineReset

protected abstract void engineReset()
為進一步使用重置摘要。


clone

public Object clone()
             throws CloneNotSupportedException
如果實作是可複製的,則返回一個副本。

覆寫:
類別 Object 中的 clone
返回:
如果實作是可複製的,則返回一個副本。
拋出:
CloneNotSupportedException - 如果對一個不支持 Cloneable 的實作調用此方法。
另請參見:
Cloneable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only