类 Mac
来源:互联网 发布:淘宝网安卓版 编辑:程序博客网 时间:2024/06/15 05:39
javax.crypto
类 Mac
java.lang.Object javax.crypto.Mac
- 所有已实现的接口:
- Cloneable
public class Mac
- extends Object
- implements Cloneable
此类提供“消息验证码”(Message Authentication Code,MAC)算法的功能。
MAC 基于秘密密钥提供一种方式来检查在不可靠介质上进行传输或存储的信息的完整性。通常,消息验证码在共享秘密密钥的两个参与者之间使用,以验证这两者之间传输的信息。
基于加密哈希函数的 MAC 机制也叫作 HMAC。结合秘密共享密钥,HMAC 可以用于任何加密哈希函数(如 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)
处理给定的 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()
个字节。 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
对象。此方法从首选 Provider 开始遍历已注册安全提供者列表。返回一个封装 MacSpi 实现的新 Mac 对象,该实现取自支持指定算法的第一个 Provider。
注意,可以通过
Security.getProviders()
方法获取已注册提供者列表。 - 参数:
algorithm
- 所请求 MAC 算法的标准名称。有关标准算法名称的信息,请参阅 Java Cryptography Architecture Reference Guide 中的附录 A。- 返回:
- 新的
Mac
对象。 - 抛出:
NoSuchAlgorithmException
- 如果没有 Provider 支持指定算法的 MacSpi 实现。- 另请参见:
Provider
getInstance
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
- 返回实现指定 MAC 算法的
Mac
对象。返回一个封装 MacSpi 实现的新 Mac 对象,该实现自指定的提供者。指定提供者必须在安全提供者列表中注册。
注意,可以通过
Security.getProviders()
方法获取已注册提供者列表。 - 参数:
algorithm
- 所请求 MAC 算法的标准名称。有关标准算法名称的信息,请参阅 Java Cryptography Architecture Reference Guide 中的附录 A。provider
- 提供者的名称。- 返回:
- 新的
Mac
对象。 - 抛出:
NoSuchAlgorithmException
- 如果不能从指定提供者获得指定算法的 MacSpi 实现。NoSuchProviderException
- 如果指定提供者未在安全提供者列表中注册。IllegalArgumentException
- 如果provider
为 null 或空。- 另请参见:
Provider
getInstance
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
- 返回实现指定 MAC 算法的
Mac
对象。返回一个封装 MacSpi 实现的新 Mac 对象,该实现取自指定的 Provider 对象。注意,指定的 Provider 对象无需在提供者列表中注册。
- 参数:
algorithm
- 所请求 MAC 算法的标准名称。有关标准算法名称的信息,请参阅 Java Cryptography Architecture Reference Guide 中的附录 A。provider
- 提供者。- 返回:
- 新的
Mac
对象。 - 抛出:
NoSuchAlgorithmException
- 如果不能从指定 Provider 对象获得指定算法的 MacSpi 实现。IllegalArgumentException
- 如果provider
为 null。- 另请参见:
Provider
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
- 处理给定的 byte 数组。
- 参数:
input
- 要处理的 byte 数组。- 抛出:
IllegalStateException
- 如果尚未初始化此Mac
。
update
public final void update(byte[] input, int offset, int len) throws IllegalStateException
- 从
offset
(包含)开始,处理input
中的前len
个字节。 - 参数:
input
- 输入缓冲区。offset
-input
中输入起始处的偏移量。len
- 要处理的字节数。- 抛出:
IllegalStateException
- 如果尚未初始化此Mac
。
update
public final void update(ByteBuffer input)
- 从
input.position()
开始,处理 ByteBufferinput
中的input.remaining()
个字节。返回时,缓冲区的位置将等于其限制;其限制不变。 - 参数:
input
- ByteBuffer- 抛出:
IllegalStateException
- 如果尚未初始化此Mac
。- 从以下版本开始:
- 1.5
doFinal
public final byte[] doFinal() throws IllegalStateException
- 完成 MAC 操作。
对此方法的调用将此
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
中,从outputOffset
(包含)开始。 - 参数:
output
- 存储 MAC 结果的缓冲区outOffset
-output
中存储 MAC 处的偏移量- 抛出:
ShortBufferException
- 如果给定输出缓冲区太小不能存储该结果IllegalStateException
- 如果尚未初始化此Mac
。
doFinal
public final byte[] doFinal(byte[] input) throws IllegalStateException
- 处理给定的 byte 数组并完成 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
- 如果提供者实现可以复制,则返回一个副本。
- 覆盖:
- 类
Object
中的clone
- 返回:
- 如果提供者实现可以复制,则返回一个副本。
- 抛出:
CloneNotSupportedException
- 如果对不支持Cloneable
的代理调用此方法。
- 类 Mac
- MAC地址工具类
- MAC
- MAC
- Mac
- mac
- mac
- mac
- MAC
- MAC
- MAC
- Mac
- mac
- MAC
- MAC
- Mac
- mac
- mac
- 【Excel】用excel生成矩阵
- IOS学习 IOS8对应之一---------定位问
- 用“设计力量变革中国”:设计成就中国高峰论坛在沪举行
- andorid代码下载20141011
- jdbcTemplate的queryForList
- 类 Mac
- 获得文件夹的路径
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
- 做产品经理如何起步
- HBase总结(十二)Java API 与HBase交互实例
- Best Time to Buy and Sell Stock III
- Ajax级联实例
- 解决高并发中出现Too many open files问题
- Valid signing identity not found解决办法(原有IDP私钥丢失)及Certificate、App ID、Devices、Provisioning Profiles之间区别