|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.crypto.Mac
public class Mac
此類別提供“訊息驗證碼”(Message Authentication Code,MAC)演算法的功能。
MAC 基於秘密密鑰提供一種方式來檢查在不可靠介質上進行傳輸或存儲的資訊的完整性。通常,訊息驗證碼在共享秘密密鑰的兩個參與者之間使用,以驗證這兩者之間傳輸的資訊。
基於加密雜湊函數的 MAC 機制也叫作 HMAC。結合秘密共享密鑰,HMAC 可以用於任何加密雜湊函數(如 MD5 或 SHA-1)。HMAC 在 RFC 2104 中指定。
建構子摘要 | |
---|---|
protected |
Mac(MacSpi macSpi,
Provider provider,
String algorithm)
創建一個 MAC 物件。 |
方法摘要 | |
---|---|
Object |
clone()
如果提供者實作可以複製,則返回一個副本。 |
byte[] |
doFinal()
完成 MAC 操作。 |
byte[] |
doFinal(byte[] input)
處理給定的 byte 陣列並完成 MAC 操作。 |
void |
doFinal(byte[] output,
int outOffset)
完成 MAC 操作。 |
String |
getAlgorithm()
返回此 Mac 物件的演算法名稱。 |
static Mac |
getInstance(String algorithm)
返回實作指定 MAC 演算法的 Mac 物件。 |
static Mac |
getInstance(String algorithm,
Provider provider)
返回實作指定 MAC 演算法的 Mac 物件。 |
static Mac |
getInstance(String algorithm,
String provider)
返回實作指定 MAC 演算法的 Mac 物件。 |
int |
getMacLength()
返回 MAC 的長度,以位元組為單位。 |
Provider |
getProvider()
返回此 Mac 物件的提供者。 |
void |
init(Key key)
用給定的密鑰初始化此 Mac 物件。 |
void |
init(Key key,
AlgorithmParameterSpec params)
用給定的密鑰和演算法參數初始化此 Mac 物件。 |
void |
reset()
重置此 Mac 物件。 |
void |
update(byte input)
處理給定的位元組。 |
void |
update(byte[] input)
處理給定的 byte 陣列。 |
void |
update(byte[] input,
int offset,
int len)
從 offset (包含)開始,處理 input 中的前 len 個位元組。 |
void |
update(ByteBuffer input)
從 input.position() 開始,處理 ByteBuffer input 中的 input.remaining() 個位元組。 |
從類別 java.lang.Object 繼承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
protected Mac(MacSpi macSpi, Provider provider, String algorithm)
macSpi
- 代理provider
- 提供者algorithm
- 演算法方法詳細資訊 |
---|
public final String getAlgorithm()
Mac
物件的演算法名稱。
此名稱與創建此 Mac
物件的 getInstance
調用之一中指定的名稱相同。
Mac
物件的演算法名稱。public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
Mac
物件。
此方法從首選 Provider 開始遍歷已註冊安全提供者列表。返回一個封裝 MacSpi 實作的新 Mac 物件,該實作取自支持指定演算法的第一個 Provider。
注意,可以通過 Security.getProviders()
方法獲取已註冊提供者列表。
algorithm
- 所請求 MAC 演算法的標準名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture Reference Guide 中的附錄 A。
Mac
物件。
NoSuchAlgorithmException
- 如果沒有 Provider 支持指定演算法的 MacSpi 實作。Provider
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Mac
物件。
返回一個封裝 MacSpi 實作的新 Mac 物件,該實作自指定的提供者。指定提供者必須在安全提供者列表中註冊。
注意,可以通過 Security.getProviders()
方法獲取已註冊提供者列表。
algorithm
- 所請求 MAC 演算法的標準名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture Reference Guide 中的附錄 A。provider
- 提供者的名稱。
Mac
物件。
NoSuchAlgorithmException
- 如果不能從指定提供者獲得指定演算法的 MacSpi 實作。
NoSuchProviderException
- 如果指定提供者未在安全提供者列表中註冊。
IllegalArgumentException
- 如果 provider
為 null 或空。Provider
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Mac
物件。
返回一個封裝 MacSpi 實作的新 Mac 物件,該實作取自指定的 Provider 物件。注意,指定的 Provider 物件無需在提供者列表中註冊。
algorithm
- 所請求 MAC 演算法的標準名稱。有關標準演算法名稱的資訊,請參閱
Java Cryptography Architecture Reference Guide 中的附錄 A。provider
- 提供者。
Mac
物件。
NoSuchAlgorithmException
- 如果不能從指定 Provider 物件獲得指定演算法的 MacSpi 實作。
IllegalArgumentException
- 如果 provider
為 null。Provider
public final Provider getProvider()
Mac
物件的提供者。
Mac
物件的提供者。public final int getMacLength()
public final void init(Key key) throws InvalidKeyException
Mac
物件。
key
- 密鑰。
InvalidKeyException
- 如果給定密鑰不適合初始化此 MAC。public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException
Mac
物件。
key
- 密鑰。params
- 演算法參數。
InvalidKeyException
- 如果給定密鑰不適合初始化此 MAC。
InvalidAlgorithmParameterException
- 如果給定演算法參數不適合此 MAC。public final void update(byte input) throws IllegalStateException
input
- 要處理的輸入位元組。
IllegalStateException
- 如果尚未初始化此 Mac
。public final void update(byte[] input) throws IllegalStateException
input
- 要處理的 byte 陣列。
IllegalStateException
- 如果尚未初始化此 Mac
。public final void update(byte[] input, int offset, int len) throws IllegalStateException
offset
(包含)開始,處理 input
中的前 len
個位元組。
input
- 輸入緩衝區。offset
- input
中輸入起始處的偏移量。len
- 要處理的位元組數。
IllegalStateException
- 如果尚未初始化此 Mac
。public final void update(ByteBuffer input)
input.position()
開始,處理 ByteBuffer input
中的 input.remaining()
個位元組。返回時,緩衝區的位置將等於其限制;其限制不變。
input
- ByteBuffer
IllegalStateException
- 如果尚未初始化此 Mac
。public final byte[] doFinal() throws IllegalStateException
對此方法的調用將此 Mac
物件重置為上一次調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
初始化的狀態。也就是說,該物件被重置,並可通過重新調用 update
和 doFinal
(如果需要)從同一個密鑰產生另一個 MAC。(若要用不同的密鑰重用此 Mac
物件,則必須通過調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
對其重新初始化)。
IllegalStateException
- 如果尚未初始化此 Mac
。public final void doFinal(byte[] output, int outOffset) throws ShortBufferException, IllegalStateException
對此方法的調用將此 Mac
物件重置為上一次調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
初始化的狀態。也就是說,該物件被重置,並可通過重新調用 update
和 doFinal
(如果需要)從同一個密鑰產生另一個 MAC。(若要用不同的密鑰重用此 Mac
物件,則必須通過調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
對其重新初始化)。
MAC 結果將存儲在 output
中,從 outputOffset
(包含)開始。
output
- 存儲 MAC 結果的緩衝區outOffset
- output
中存儲 MAC 處的偏移量
ShortBufferException
- 如果給定輸出緩衝區太小不能存儲該結果
IllegalStateException
- 如果尚未初始化此 Mac
。public final byte[] doFinal(byte[] input) throws IllegalStateException
對此方法的調用將此 Mac
物件重置為上一次調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
初始化的狀態。也就是說,該物件被重置,並可通過重新調用 update
和 doFinal
(如果需要)從同一個密鑰產生另一個 MAC。(若要用不同的密鑰重用此 Mac
物件,則必須通過調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
對其重新初始化)。
input
- 位元組中的資料
IllegalStateException
- 如果尚未初始化此 Mac
。public final void reset()
Mac
物件。
對此方法的調用將此 Mac
物件重置為上一次調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
初始化的狀態。也就是說,該物件被重置,並可通過重新調用 update
和 doFinal
(如果需要)從同一個密鑰產生另一個 MAC。(若要用不同的密鑰重用此 Mac
物件,則必須通過調用 init(Key)
或 init(Key, AlgorithmParameterSpec)
對其重新初始化)。
public final 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。