所有类


javax.crypto
类 Mac

java.lang.Object
  继承者 javax.crypto.Mac
所有已实现的接口:
Cloneable

public class Mac
   
   
   
   
   
extends Object
implements 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。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部