public class Mac extends Object implements Cloneable
一个提供了一种方法来检查信息的完整性,或存储在一个不可靠的介质中,基于一个秘密密钥。通常情况下,用于共享密钥的两方之间使用消息验证码来验证这些方之间的信息。
一种是基于Hash函数的MAC机制称为HMAC。HMAC可以使用任何加密哈希函数,如MD5或SHA-1,跟一个秘密共享的密钥组合。HMAC在RFC 2104中指定的。
java平台的每种实现都要求支持以下标准Mac
算法:
Modifier | Constructor and Description |
---|---|
protected |
Mac(MacSpi macSpi, Provider provider, String algorithm)
创建一个麦克对象。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
返回一个克隆如果提供者实现Cloneable。
|
byte[] |
doFinal()
完成了苹果的操作。
|
byte[] |
doFinal(byte[] input)
处理给定的字节数组,并完成的麦克操作。
|
void |
doFinal(byte[] output, int outOffset)
完成了苹果的操作。
|
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()
返回字节的字节的长度。
|
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)
处理给定的字节数组。
|
void |
update(byte[] input, int offset, int len)
在
input 第一
len 字节的过程,从
offset 包容。
|
void |
update(ByteBuffer input)
过程
input.remaining() 字节缓冲区
input ,开始在
input.position() 。
|
public final String getAlgorithm()
Mac
。
这是相同的名字,是在一个Mac
创建这个对象调用指定getInstance
。
Mac
对象的算法名称。
public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
Mac
对象。
该方法通过注册安全提供商列表,从最开始的首选供应商。一个新的MAC对象封装macspi实施支持指定算法的第一供应商返回。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
algorithm
-请求的MAC算法的标准名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation MAC部分。
Mac
对象。
NoSuchAlgorithmException
-如果没有提供程序支持一个指定的算法macspi实施。
Provider
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Mac
对象。
一个新的MAC对象封装macspi实现从指定的提供程序返回。指定的提供程序必须在安全提供程序列表中注册。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
algorithm
-请求的MAC算法的标准名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation MAC部分。
provider
-提供者的名称。
Mac
对象。
NoSuchAlgorithmException
-如果一个指定的算法macspi执行不可从指定的供应商。
NoSuchProviderException
-如果指定的供应商不在安全提供商注册名单。
IllegalArgumentException
-如果
provider
是null或空。
Provider
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Mac
对象。
一个新的MAC对象封装macspi实现从指定的提供程序对象返回。请注意,指定的提供程序对象不必在提供者列表中注册。
algorithm
-请求的MAC算法的标准名称。看到有关标准算法名称信息在
Java Cryptography Architecture Standard Algorithm Name Documentation MAC部分。
provider
-供应商。
Mac
对象。
NoSuchAlgorithmException
-如果一个指定的算法macspi执行不可从指定的提供程序对象。
IllegalArgumentException
-如果
provider
是空的。
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
-字节数组处理。
IllegalStateException
-如果这
Mac
尚未初始化。
public final void update(byte[] input, int offset, int len) throws IllegalStateException
input
第一
len
字节的过程,从
offset
包容。
input
-输入缓冲区。
offset
-
input
那里开始输入偏移。
len
-字节数的过程。
IllegalStateException
-如果这
Mac
尚未初始化。
public final void update(ByteBuffer input)
input.remaining()
字节缓冲区
input
,开始在
input.position()
。返回后,缓冲区的位置将等于其极限;极限将不会改变。
input
- ByteBuffer
IllegalStateException
-如果这
Mac
尚未初始化。
public final byte[] doFinal() throws IllegalStateException
调用此方法将这Mac
对象时的状态之前初始化通过调用init(Key)
或init(Key, AlgorithmParameterSpec)
,对象是复位可从相同的键,产生一个MAC如果需要的话,通过新的电话update
和doFinal
。(为了利用这Mac
对象使用不同的密钥,它必须重新初始化通过电话或init(Key, AlgorithmParameterSpec)
init(Key)
。
IllegalStateException
-如果这
Mac
尚未初始化。
public final void doFinal(byte[] output, int outOffset) throws ShortBufferException, IllegalStateException
调用此方法将这Mac
对象时的状态之前初始化通过调用init(Key)
或init(Key, AlgorithmParameterSpec)
,对象是复位可从相同的键,产生一个MAC如果需要的话,通过新的电话update
和doFinal
。(为了利用这Mac
对象使用不同的密钥,它必须重新初始化通过电话或init(Key, AlgorithmParameterSpec)
init(Key)
。
MAC的结果存储在output
,开始在outOffset
包容。
output
的缓冲,MAC结果存储
outOffset
-抵消
output
在Mac存储
ShortBufferException
如果给定的输出缓冲区太小,保存结果
IllegalStateException
-如果这
Mac
尚未初始化。
public final byte[] doFinal(byte[] input) throws IllegalStateException
调用此方法将这Mac
对象时的状态之前初始化通过调用init(Key)
或init(Key, AlgorithmParameterSpec)
,对象是复位可从相同的键,产生一个MAC如果需要的话,通过新的电话update
和doFinal
。(为了利用这Mac
对象一个不同的密钥,它必须重新初始化通过电话或init(Key, AlgorithmParameterSpec)
init(Key)
。
input
数据字节
IllegalStateException
-如果这
Mac
尚未初始化。
public final void reset()
Mac
重置对象。
调用此方法将这Mac
对象时的状态之前初始化通过调用init(Key)
或init(Key, AlgorithmParameterSpec)
,对象是复位可从相同的键,产生一个MAC如果需要的话,通过新的电话update
和doFinal
。(为了利用这Mac
对象使用不同的密钥,它必须重新初始化通过电话或init(Key, AlgorithmParameterSpec)
init(Key)
。
public final Object clone() throws CloneNotSupportedException
clone
方法重写,继承类
Object
CloneNotSupportedException
-如果这是呼吁代表不支持
Cloneable
。
Cloneable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.