code: public String decrypt(String msgSignature, String timeStamp, String nonce, String encryptedXml) {
      // 密钥，公众账号的app corpSecret
      // 提取密文
      String cipherText = extractEncryptPart(encryptedXml);
  
      try {
        // 验证安全签名
        String signature = SHA1.gen(token, timeStamp, nonce, cipherText);
        if (!signature.equals(msgSignature)) {
          throw new RuntimeException("加密消息签名校验失败");
        }
      } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException(e);
      }
  
      // 解密
      String result = decrypt(cipherText);
      return result;
    }
docs: 检验消息的真实性，并且获取解密后的明文.
  <ol>
  <li>利用收到的密文生成安全签名，进行签名验证</li>
  <li>若验证通过，则提取xml中的加密消息</li>
  <li>对消息进行解密</li>
  </ol>
  
  @param msgSignature 签名串，对应URL参数的msg_signature
  @param timeStamp    时间戳，对应URL参数的timestamp
  @param nonce        随机串，对应URL参数的nonce
  @param encryptedXml 密文，对应POST请求的数据
  @return 解密后的原文