微信支付AES加解密算法

AES256/ECB/PKCS7Padding


一、AES

高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法

二、实现

package com.wx;import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.Security;
import java.util.Base64;public class AESUtil {/*** 密钥算法*/private static final String ALGORITHM = "AES";/*** 加解密算法/工作模式/填充方式*/private static final String ALGORITHM_MODE_PADDING = "AES/ECB/PKCS7Padding";private static final String APIKEY = "你的 api key";/*** AES解密** @param base64Data base64* @return string*/public static String decryptData(String base64Data, String lowMad5Key) throws Exception {SecretKeySpec key = new SecretKeySpec(lowMad5Key.getBytes(), ALGORITHM);Security.addProvider(new BouncyCastleProvider());Cipher cipher = Cipher.getInstance(ALGORITHM_MODE_PADDING);cipher.init(Cipher.DECRYPT_MODE, key);Base64.Decoder decoder = Base64.getDecoder();String newData = new String(decoder.decode(base64Data), StandardCharsets.ISO_8859_1);return new String(cipher.doFinal(newData.getBytes(StandardCharsets.ISO_8859_1)), StandardCharsets.UTF_8);}public static String MD5(String data) throws Exception {MessageDigest md = MessageDigest.getInstance("MD5");byte[] array = md.digest(data.getBytes(StandardCharsets.UTF_8));StringBuilder sb = new StringBuilder();byte[] var4 = array;int var5 = array.length;for (int var6 = 0; var6 < var5; ++var6) {byte item = var4[var6];sb.append(Integer.toHexString(item & 255 | 256).substring(1, 3));}return sb.toString().toUpperCase();}/*** 退款回调信息需要解密读取 调用即可*/public static String mapResult(String info) throws Exception{return decryptData(info, AESUtil.MD5(APIKEY).toLowerCase());}}

简单易读,通俗易懂。。。好用


微信支付AES加解密算法相关推荐

  1. php aes 256 加解密,PHP完整的AES加解密算法使用及例子(256位)

    依赖PHP自身的mcrypt扩展 class aes { // CRYPTO_CIPHER_BLOCK_SIZE 32 private $_secret_key = 'default_secret_k ...

  2. C语言实现AES加解密算法

    C语言实现AES加解密算法 AES加解密 AES加解密 #include <stdio.h> #include <stdint.h> #include <memory.h ...

  3. Android金融支付常见加解密算法及安全防护

    引言 因为本人从事的金融 IC 卡和移动支付相关的开发工作,在日常研发过程中,对 APP 信息安全防护方面尤为重视,所以现总结下金融支付相关的加解密算法以及常见的安全防范措施. Android 端常见 ...

  4. Python中的AES加解密算法

    AES加密的参数及其条件:这个AES加密的主要坑就在于这些条件,首先AES加密有几个参数 秘钥:加密的时候用秘钥,解密的时候需要同样的秘钥才能解出来 明文:需要加密的内容 模式:aes 加密常用的有E ...

  5. AES加解密算法详解

    0 AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种方案,用以适应 ...

  6. java aes ebc_Delphi XE2+标准AES加解密算法(AES/EBC,CBC/PKCS5Padding-base64)

    [实例简介] 实现了AES/ECB/PKCS5Padding.AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充.是标准的AES算法,支持在线AES加解密网站互 ...

  7. php5.0 aes加解密,PHP的aes加解密算法

    说明: 1. php的aes算法,加密时会存在空格,0,\0等方式进行补长,所以解密后需要进行trim操作,才能得到原数据串 2. aes加密后进行base64_encode,但是解密时,直接用aes ...

  8. 微信支付AES解密工具类

    WechatAESUtil类 public class WechatAESUtil {/*** 密钥算法*/private static final String ALGORITHM = " ...

  9. 程序猿成长之路番外篇之前后端加解密(rsa+aes混合加解密算法)

    今年国庆前夕接手一个外部项目,说是要保障接口数据安全,数据安全相对容易些,接口安全嘛emmmmm, 这个要考虑加解密算法.白名单之类的问题了.于是打算今天搞一期接口安全为题的成长之路番外篇. 为什么要 ...

最新文章

  1. 关于机器学习,不可不知的15个概念
  2. LNMP - Nginx配置防盗链
  3. c#启动单个程序(互斥机制)
  4. js 替换任意字符串中间几位为*星号
  5. 前端学习(2411):name属性的作用
  6. 【POJ - 3177】Redundant Paths(边双连通分量,去重边)
  7. idea,eclipse创建多模块项目
  8. java 百度地图 经纬度_Java百度地图经纬度纠偏
  9. NetscalerSSL证书的导入和link
  10. 封装继承多态的关联性
  11. scrapy持久化存储
  12. 数学分析高等代数考研试题考研真题汇总目录2020-01-10更新
  13. vlookup匹配的文字显示0_Excel | VLOOKUP函数使用详解
  14. plt.subplots_adjust(wspace=0.01, hspace=0.01)
  15. FIN_WAIT_1/FIN_WAIT_2
  16. 我的iMac苹果电脑的系统崩溃和恢复
  17. php ffmpeg 转码mp4,PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
  18. DeepLearning with Pytorch Chapter04
  19. springcloud项目读取不到application.properties
  20. 一本修炼秘籍,带你打穿文件上传的21层妖塔(1)

热门文章

  1. 正则 准确找出(链接)的文字信息
  2. 我司赤城CEO论文获得日本经营系统学会的学会奖
  3. 乔布斯:不要为明天忧虑
  4. 探索大寰夹爪| 大寰PGE-5平行夹爪亮点与指示灯判断
  5. 后台管理系统移动端适配解决方案
  6. CPU版本的Tensorflow安装
  7. 做一个三维GIS平台?
  8. 孟岩获提名为中国通信工业协会区块链专委会(CCIAPCB)副主任委员
  9. 用格西烽火串口助手制作程控命令协议!
  10. 单片机毕业设计 智能门禁系统