- すべての実装されたインタフェース:
Cloneable
MACは、信頼できない媒体に送信または格納された情報の整合性を、秘密キーに基づいてチェックする方法を提供します。 一般に、メッセージ認証コードは、秘密キーを共有する2つのパーティ間で送信される情報の有効性を検証する場合に使用されます。
暗号化ハッシュ機能に基づくMACメカニズムは、HMACと呼ばれます。 HMACは、任意の暗号ハッシュ関数(例えば、SHA256またはSHA384)と共に、秘密の共有キーと組み合わせて使用することができます。 HMACについては、RFC 2104で規定されています。
Javaプラットフォームの実装は、すべて次の標準のMacアルゴリズムをサポートする必要があります。
HmacSHA1HmacSHA256
- 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明final Objectclone()プロバイダの実装が複製可能な場合は複製を返します。final byte[]doFinal()MAC操作を終了します。final byte[]doFinal(byte[] input) 指定されたバイトの配列を処理してMAC操作を終了します。final voiddoFinal(byte[] output, int outOffset) MAC操作を終了します。final StringこのMacオブジェクトのアルゴリズム名を返します。static final MacgetInstance(String algorithm) 指定されたMACアルゴリズムを実装するMacオブジェクトを返します。static final MacgetInstance(String algorithm, String provider) 指定されたMACアルゴリズムを実装するMacオブジェクトを返します。static final MacgetInstance(String algorithm, Provider provider) 指定されたMACアルゴリズムを実装するMacオブジェクトを返します。final intMACの長さをバイト単位で返します。final ProviderこのMacオブジェクトのプロバイダを返します。final void指定されたキーを使用してこのMacオブジェクトを初期化します。final voidinit(Key key, AlgorithmParameterSpec params) 指定されたキーとアルゴリズム・パラメータを使用してこのMacオブジェクトを初期化します。final voidreset()このMacオブジェクトをリセットします。final voidupdate(byte input) 指定されたバイトを処理します。final voidupdate(byte[] input) 指定されたバイトの配列を処理します。final voidupdate(byte[] input, int offset, int len) input内のlenバイトを処理します。offsetから始めます。final voidupdate(ByteBuffer input) ByteBufferinput内のinput.position()から始まるinput.remaining()バイトを処理します。
-
コンストラクタの詳細
-
Mac
MACオブジェクトを生成します。- パラメータ:
macSpi- 委譲先provider- プロバイダalgorithm- アルゴリズム
-
-
メソッドの詳細
-
getAlgorithm
public final String getAlgorithm()このMacオブジェクトのアルゴリズム名を返します。これは、この
Macオブジェクトを作成したgetInstance呼出しのいずれかに指定された名前と同じです。- 戻り値:
- この
Macオブジェクトのアルゴリズム名。
-
getInstance
public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException 指定されたMACアルゴリズムを実装するMacオブジェクトを返します。このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたアルゴリズムをサポートする最初のプロバイダから
MacSpi実装をカプセル化する新しいMacオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
algorithm- 要求されたMACアルゴリズムの標準名。 標準のアルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のMacの項を参照してください。- 戻り値:
- 新しい
Macオブジェクト - スロー:
NoSuchAlgorithmException-Providerが、指定されたアルゴリズムのMacSpi実装をサポートしていない場合NullPointerException-algorithmがnullである場合- 関連項目:
-
getInstance
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException 指定されたMACアルゴリズムを実装するMacオブジェクトを返します。指定したプロバイダから
MacSpi実装をカプセル化する新しいMacオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- パラメータ:
algorithm- 要求されたMACアルゴリズムの標準名。 標準のアルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のMacの項を参照してください。provider- プロバイダ名。- 戻り値:
- 新しい
Macオブジェクト - スロー:
IllegalArgumentException-providerがnullまたは空の場合NoSuchAlgorithmException- 指定されたアルゴリズムのMacSpi実装が、指定されたプロバイダから利用可能でない場合NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException-algorithmがnullである場合- 関連項目:
-
getInstance
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 指定されたMACアルゴリズムを実装するMacオブジェクトを返します。指定したプロバイダから
MacSpi実装をカプセル化する新しいMacオブジェクトが返されます。 指定されたプロバイダをプロバイダ・リストに登録する必要はありません。- パラメータ:
algorithm- 要求されたMACアルゴリズムの標準名。 標準のアルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」のMacの項を参照してください。provider- プロバイダ- 戻り値:
- 新しい
Macオブジェクト - スロー:
IllegalArgumentException-providerがnullの場合NoSuchAlgorithmException- 指定されたアルゴリズムのMacSpi実装が、指定されたProviderオブジェクトから使用できない場合NullPointerException-algorithmがnullである場合- 関連項目:
-
getProvider
public final Provider getProvider()このMacオブジェクトのプロバイダを返します。- 戻り値:
- この
Macオブジェクトのプロバイダ。
-
getMacLength
public final int getMacLength()MACの長さをバイト単位で返します。- 戻り値:
- バイト単位のMAC長
-
init
public final void init(Key key) throws InvalidKeyException 指定されたキーを使用してこのMacオブジェクトを初期化します。- パラメータ:
key- キー- スロー:
InvalidKeyException- 指定されたキーがこのMACの初期化に不適切な場合。
-
init
public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException 指定されたキーとアルゴリズム・パラメータを使用してこのMacオブジェクトを初期化します。- パラメータ:
key- キーparams- アルゴリズム・パラメータ。- スロー:
InvalidKeyException- 指定されたキーがこのMACの初期化に不適切な場合。InvalidAlgorithmParameterException- 指定されたアルゴリズム・パラメータがこのMACに不適切な場合。
-
update
public final void update(byte input) throws IllegalStateException 指定されたバイトを処理します。- パラメータ:
input- 処理される入力バイト。- スロー:
IllegalStateException- このMacが初期化されていない場合。
-
update
public final void update(byte[] input) throws IllegalStateException 指定されたバイトの配列を処理します。- パラメータ:
input- 処理されるバイトの配列。- スロー:
IllegalStateException- このMacが初期化されていない場合。
-
update
public final void update(byte[] input, int offset, int len) throws IllegalStateException input内のlenバイトを処理します。offsetから始めます。- パラメータ:
input- 入力バッファoffset- 入力を開始するinput内のオフセット。len- 処理するバイト数。- スロー:
IllegalStateException- このMacが初期化されていない場合。
-
update
public final void update(ByteBuffer input) ByteBufferinput内のinput.position()から始まるinput.remaining()バイトを処理します。 終了時に、バッファの位置はリミットに等しくなりますが、リミットは変更されません。- パラメータ:
input- ByteBuffer- スロー:
IllegalStateException- このMacが初期化されていない場合。IllegalArgumentException-inputがnullの場合- 導入されたバージョン:
- 1.5
-
doFinal
public final byte[] doFinal() throws IllegalStateExceptionMAC操作を終了します。このメソッドを呼び出すと、この
Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。- 戻り値:
- MAC結果
- スロー:
IllegalStateException- このMacが初期化されていない場合。
-
doFinal
public final void doFinal(byte[] output, int outOffset) throws ShortBufferException, IllegalStateException MAC操作を終了します。このメソッドを呼び出すと、この
Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。MAC結果は
outputに格納されます。outOffsetから始まります。- パラメータ:
output- MAC結果が格納されるバッファoutOffset- MACが格納されるoutput内のオフセット- スロー:
ShortBufferException- 指定された出力バッファが小さすぎて結果を保持できない場合IllegalStateException- このMacが初期化されていない場合。
-
doFinal
public final byte[] doFinal(byte[] input) throws IllegalStateException 指定されたバイトの配列を処理してMAC操作を終了します。このメソッドを呼び出すと、この
Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。- パラメータ:
input- バイト単位のデータ- 戻り値:
- MAC結果
- スロー:
IllegalStateException- このMacが初期化されていない場合。
-
reset
public final void reset()このMacオブジェクトをリセットします。このメソッドを呼び出すと、この
Macオブジェクトは、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して以前初期化された状態にリセットされます。 つまり、オブジェクトは、必要に応じてupdateおよびdoFinalの新規の呼出しを介してリセットされ、同じキーから別のMACを生成するために使用可能になります。 別のキーでこのMacオブジェクトを再使用するためには、init(Key)またはinit(Key, AlgorithmParameterSpec)の呼出しを介して再度初期化する必要があります。 -
clone
public final Object clone() throws CloneNotSupportedExceptionプロバイダの実装が複製可能な場合は複製を返します。- オーバーライド:
clone、クラスObject- 戻り値:
- プロバイダの実装が複製可能な場合は複製
- スロー:
CloneNotSupportedException-Cloneableをサポートしていない委譲先で呼び出された場合。- 関連項目:
-