|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 Mac
java.lang.Object javax.crypto.Mac
- 所有已实现的接口:
- Cloneable
此类提供“消息验证代码”(MAC) 算法的功能。
MAC 基于秘密密钥提供一种检查信息完整性的方法,该信息在不可靠的介质上传输或者存储在这种介质上。通常,消息验证代码在共享秘密密钥的两个参与者之间使用,以验证这两方之间传输的信息。
基于 cryptographic(加密)哈希函数的 MAC 机制也叫作 HMAC。HMAC 结合秘密共享密钥可以与任何 cryptographic 哈希函数(如 MD5 或 SHA-1)一起使用。HMAC 在 RFC 2104 中指定。
- 从以下版本开始:
- 1.4
构造方法摘要 | |
---|---|
protected |
Mac(MacSpi macSpi, Provider provider, String algorithm) 创建一个 MAC 对象。 |
方法摘要 | |
---|---|
Object |
clone() 如果此提供程序实现可以复制,则返回一个副本。 |
byte[] |
doFinal() 完成 MAC 操作。 |
byte[] |
doFinal(byte[] input) 处理给定的字节数组并完成 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) 处理给定的字节数组。 |
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 |
构造方法详细信息 |
---|
Mac
protected Mac(MacSpi macSpi, Provider provider, String algorithm)
-
创建一个 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
对象。如果默认提供程序包提供请求的 MAC 算法的实现,则返回包含该实现的一个Mac
实例。如果默认的提供程序包中没有可用的算法,则将搜索其他的提供程序包。 -
-
- 参数:
-
algorithm
- 请求的 MAC 算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 - 返回:
-
新的
Mac
对象 - 抛出:
-
NoSuchAlgorithmException
- 如果默认的提供程序包中指定的算法不可用,或者搜索到的其他提供程序包都不可用。
getInstance
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
-
根据指定的提供程序生成指定 MAC 算法的
Mac
对象。 -
-
- 参数:
-
algorithm
- 请求的 MAC 算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 -
provider
- 提供程序的名称。 - 返回:
-
新的
Mac
对象。 - 抛出:
-
NoSuchAlgorithmException
- 如果指定的提供程序中未提供指定的算法。 -
NoSuchProviderException
- 如果指定的提供程序未配置。 -
IllegalArgumentException
- 如果provider
为 null。
getInstance
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
-
根据指定的提供程序生成指定 MAC 算法的
Mac
对象。注:provider
不一定都需要注册。 -
-
- 参数:
-
algorithm
- 请求的 MAC 算法的标准名称。有关标准算法名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 -
provider
- 提供程序的名称。 - 返回:
-
新的
Mac
对象。 - 抛出:
-
NoSuchAlgorithmException
- 如果指定的提供程序中未提供指定的算法。 -
IllegalArgumentException
- 如果provider
为 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。