me.chanjar.weixin.common.util.crypto

## 类 WxCryptUtil

- java.lang.Object
- - me.chanjar.weixin.common.util.crypto.WxCryptUtil

    public class WxCryptUtil
    extends Object

### 字段概要

字段
`protected byte[]` `aesKey`
`protected String` `appidOrCorpid`
`protected String` `token`

### 构造器概要

构造器
构造器和说明
`WxCryptUtil()`
`WxCryptUtil(String token, String encodingAesKey, String appidOrCorpid)` 构造函数

### 方法概要

方法
`String` `decrypt(String cipherText)` 对密文进行解密.
`String` `decrypt(String msgSignature, String timeStamp, String nonce, String encryptedXml)` 检验消息的真实性，并且获取解密后的明文.
`String` `encrypt(String plainText)` 将公众平台回复用户的消息加密打包.
`protected String` `encrypt(String randomStr, String plainText)` 对明文进行加密.

### 从类继承的方法 java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 字段详细资料

#### aesKey

    protected byte[] aesKey

#### token

    protected String token

#### appidOrCorpid

    protected String appidOrCorpid

### 构造器详细资料

#### WxCryptUtil

    public WxCryptUtil()

#### WxCryptUtil

    public WxCryptUtil(String token,
               String encodingAesKey,
               String appidOrCorpid)

构造函数

参数:
  `token` - 公众平台上，开发者设置的token
  `encodingAesKey` - 公众平台上，开发者设置的EncodingAESKey
  `appidOrCorpid` - 公众平台appid/corpid

### 方法详细资料

#### encrypt

    public String encrypt(String plainText)

将公众平台回复用户的消息加密打包.

1. 对要发送的消息进行AES-CBC加密
2. 生成安全签名
3. 将消息密文和安全签名打包成xml格式

参数:
  `plainText` - 公众平台待回复用户的消息，xml格式的字符串
返回:
  加密后的可以直接回复用户的密文，包括msg_signature, timestamp, nonce, encrypt的xml格式的字符串

#### encrypt

    protected String encrypt(String randomStr,
                 String plainText)

对明文进行加密.

参数:
  `plainText` - 需要加密的明文
返回:
  加密后base64编码的字符串

#### decrypt

    public String decrypt(String msgSignature,
                 String timeStamp,
                 String nonce,
                 String encryptedXml)

检验消息的真实性，并且获取解密后的明文.

1. 利用收到的密文生成安全签名，进行签名验证
2. 若验证通过，则提取xml中的加密消息
3. 对消息进行解密

参数:
  `msgSignature` - 签名串，对应URL参数的msg_signature
  `timeStamp` - 时间戳，对应URL参数的timestamp
  `nonce` - 随机串，对应URL参数的nonce
  `encryptedXml` - 密文，对应POST请求的数据
返回:
  解密后的原文

#### decrypt

    public String decrypt(String cipherText)

对密文进行解密.

参数:
  `cipherText` - 需要解密的密文
返回:
  解密得到的明文