91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2023-02-06
  • 語言: 其他
  • 標簽: java??wechat??

資源簡介

該工具類主要用于微信公眾號消息的加解密,我自己的博客也用到了https://blog.csdn.net/goodbye_youth/article/details/80653132

資源截圖

代碼片段和文件信息

import?org.apache.commons.codec.binary.base64;

import?java.util.Arrays;
import?java.util.Random;

import?javax.crypto.Cipher;
import?javax.crypto.spec.IvParameterSpec;
import?javax.crypto.spec.SecretKeySpec;

/**
?*?@title:?WXPublicUtils.java
?*?@Description:?提供接收和推送給公眾平臺消息的加解密接口(UTF8編碼的字符串)
?*?@Author:?xj
?*/
/**
?*?

    ?*?
  1. 第三方回復加密消息給公眾平臺

  2. ?*?
  3. 第三方收到公眾平臺發送的消息,驗證消息的安全性,并對消息進行解密。

  4. ?*?

?*?說明:異常java.security.InvalidKeyException:illegal?Key?Size的解決方案
?*?

    ?*?
  1. 在官方網站下載JCE無限制權限策略文件(JDK7的下載地址:
    ?*??????http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

  2. ?*?
  3. 下載后解壓,可以看到local_policy.jar和US_export_policy.jar以及readme.txt

  4. ?*?
  5. 如果安裝了JRE,將兩個jar文件放到%JRE_HOME%\lib\security目錄下覆蓋原來的文件

  6. ?*?
  7. 如果安裝了JDK,將兩個jar文件放到%JDK_HOME%\jre\lib\security目錄下覆蓋原來文件

  8. ?*?

?*/
public?class?WXPublicUtils?{

????private?static?base64?base64?=?new?base64();

????//?生成4個字節的網絡字節序
????private?static?byte[]?getNetworkBytesOrder(int?sourceNumber)?{
????????byte[]?orderBytes?=?new?byte[4];
????????orderBytes[3]?=?(byte)?(sourceNumber?&?0xFF);
????????orderBytes[2]?=?(byte)?(sourceNumber?>>?8?&?0xFF);
????????orderBytes[1]?=?(byte)?(sourceNumber?>>?16?&?0xFF);
????????orderBytes[0]?=?(byte)?(sourceNumber?>>?24?&?0xFF);
????????return?orderBytes;
????}

????//?還原4個字節的網絡字節序
????private?static?int?recoverNetworkBytesOrder(byte[]?orderBytes)?{
????????int?sourceNumber?=?0;
????????for?(int?i?=?0;?i?????????????sourceNumber?<<=?8;
????????????sourceNumber?|=?orderBytes[i]?&?0xff;
????????}
????????return?sourceNumber;
????}

????//?隨機生成16位字符串
????public?static?String?getRandomStr()?{
????????String?base?=?“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789“;
????????Random?random?=?new?Random();
????????StringBuffer?sb?=?new?StringBuffer();
????????for?(int?i?=?0;?i?????????????int?number?=?random.nextInt(base.length());
????????????sb.append(base.charAt(number));
????????}
????????return?sb.toString();
????}

????/**
?????*?對明文進行加密.
?????*
?????*?@param?randomStr?隨機字符串
?????*?@param?text?需要加密的明文
?????*?@return?加密后base64編碼的字符串
?????*?@throws?AesException?aes加密失敗
?????*/
????public?static?String?encrypt(String?randomStr?String?text)?throws?AesException?{
????????ByteGroup?byteCollector?=?new?ByteGroup();
????????byte[]?randomStrBytes?=?randomStr.getBytes(WXConstants.CHARSET);
????????byte[]?textBytes?=?text.getBytes(WXConstants.CHARSET);
????????byte[]?networkBytesOrder?=?getNetworkBytesOrder(textBytes.length);
????????byte[]?appidBytes?=?WXConstants.APPID.getBytes(WXConstants.CHARSET);

????????//?randomStr?+?networkBytesOrder?+?text?+?appid
????????byteCollector.addBytes(randomStrBytes);
????????byteCollector.addBytes(networkBytesOrder);
????????byteCollector.addBytes(textBytes);
????????byteCollector.addBytes(appidBytes);

????????//?...?+?pad:?使用自定義的填充方式對明文進行補位填充
????????byte[]?padBytes?=

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-11?17:14??aes\
?????文件????????1723??2018-06-11?17:17??aes\AesException.java
?????文件?????????627??2018-06-11?17:18??aes\ByteGroup.java
?????文件????????1479??2018-06-11?17:18??aes\PKCS7Encoder.java
?????文件????????2958??2018-06-11?17:18??aes\SHA1.java
?????文件????????2016??2018-06-11?17:19??aes\xmlParse.java
?????文件???????11061??2018-06-11?17:20??WXPublicUtils.java

評論

共有 條評論