小程序数据签名校验-Java端

JDK内置的签名算法不包含小程序需要的(对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充),所以需要引用第三方jar。

    compile group: ‘org.bouncycastle‘, name: ‘bcprov-jdk15on‘, version: ‘1.54‘

以下是具体的代码:

  //自行在构造函数中赋值
   String sessionKey;

 /**
     * AES-128-CBC解密
     * 使用PKCS填充
     * @param encryptedData
     * @param iv
     * @return
     * @throws Exception
     */
    public String decryptAesPkcData(String encryptedData, String iv) throws Exception {
        //检查sessionKey的长度
        if (this.sessionKey.length() != 24) {
            throw new AesException(AesException.IllegalAesKey);
        }
        //检查iv的长度
        if (iv.length() != 24) {
            throw new AesException(AesException.IllegalAesKey);
        }
        byte[] aesKey = Base64.decodeBase64(this.sessionKey);
        byte[] aesIV = Base64.decodeBase64(iv);
        byte[] aesCipher = Base64.decodeBase64(encryptedData);
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
        Key sKeySpec = new SecretKeySpec(aesKey, "AES");
        AlgorithmParameters params = AlgorithmParameters.getInstance("AES");
        params.init(new IvParameterSpec(aesIV));
        cipher.init(Cipher.DECRYPT_MODE, sKeySpec, params);
        return new String(cipher.doFinal(aesCipher), "utf-8");
    }

原文地址:https://www.cnblogs.com/liudan996/p/8274153.html

时间: 2024-10-10 13:11:57

小程序数据签名校验-Java端的相关文章

微信小程序数据请求方法wx.request小测试

微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </view> <button bindtap="RequestData" value="Button">Button</button> 主要是一个按钮,点击后将请求的数据写入到textarea中 js文件: Page({ data:{ textd

商城类小程序源码,优质资源分享!(公众号小程序数据互通)

给大家分享一套不错的小程序公众号商城源码! CRMEB是通用ThinkPhp5.0+Vue+EasyWeChat 开发的一套新零售商城系统: 将源码安装成功后.通过配置开放平台后,统一用户ID身份,用户数据互通,系统共用一个后台,后台产品发布和用户数据是同步的: 系统后台采用form-builder组件和后台多任务操作框架,方便快速开发增删改.封装layui.table 可快速开发数据列表页面.PHPExcel数据导出.数据库在线词典.日志小工具.系统参数配置.系统强大完善的权限控制.系统菜单配

C4J私有化的小程序数据统计分析

线上流量红利逐渐消失的今天,产品的获客成本从几元,飙升到了现在的几百元,甚至上千元,流量大战悄然打响!而 "微信社会"中的小程序,凭借着离消费者一指之遥的距离,成为商家不被淘汰的制胜法宝 . 2019年4月,开源的用户行为分析厂商Cobub推出全渠道的用户增长利器-C4J,即Cobub for Java,全新一代低成本.私有化.全渠道.高性能的用户行分析平台.新增对小程序模块的统计分析,实现了产品多渠道数据的打通,形成跨渠道用户全生命周期的行为数据流, 从而提升用户体验,驱动用户及业务

微信小程序访问webService(Java)

在前台UI确认后,终于进入到后台服务的搭建及实现中.所及而来的问题就出现了,为了提高后台程序的可用性.设计初期决定,通过搭建java WebService实现.准备工作还是比较充分的,创建WebService框架,实现接口方法.通过建立测试客户端调用java WebService方法.以上内容均已通过,就在最后通过微信小程序wx.request调用WebService接口时,问题出现了.标准的java WebService返回的为xml形式的soap描述文件,并非期待的json对象或json形式

微信小程序-数据缓存

每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置.获取和清理.本地缓存最大为10MB. 注意: localStorage 是永久存储的,但是我们不建议将关键信息全部存在 localStorage,以防用户换设备的情况. wx.setStorage(OBJECT) 将数据存储

asp写的微信小程序支付demo-服务器端是asp+mdb的

这个微信小程序支付demo代码是我用asp写的,微信小程序端加上服务器端用的asp和mdb数据库,下面是代码分享: <view class="container"> <view class='view'>订单说明:{{paydata.title}}</view> <view class='view inputview'> 支付金额:<input bindinput="bindKeyInput" type=&quo

原生微信小程序数据渲染

一直在写vue,第一次接触微信小程序,还是原生,最开始做的时候真的很闹心啊啊啊啊啊啊啊啊啊啊啊啊!!所以最近大概更新的都是微信小程序原生的内容了~~么么哒!!一定会继续努力的!!tips:在小程序项目中,app.json文件里的 { //页面配置路径 "pages":[ "page/index/index", //默认首页 "page/index/logs", ] } 正题:微信小程序原生数据渲染条件渲染:wx:if wx:elif wx:els

小程序数据埋点实践之曝光量

什么是数据埋点 所谓数据埋点就是应用在规定流程中 对特定行为或事件进行数据采集 .使用采集的数据做用户分析和页面分析,可以获得应用的总体使用情况,为后续优化产品和运营提供数据支撑.常见数据埋点内容包括:访问量.停留时长.曝光量.点击量.跳出率等等. 微信小程序也为我们提供了自定义分析统计,其中包括 API 上报(代码埋点),填写配置(无埋点,只需在公众后台配置).而第三方统计平台比较有名的就是阿拉丁统计,只需引入集成的 SDK,开发成本低,能够满足大部分的需求. 数据埋点需要分析页面流程,确定埋

微信小程序数据过滤(filter)方法

因为微信小程序的wxml和js的内部实现机制是分开编译的.所以在wxml是没办法调用js的函数的.这会导致WXML缺少一个我们常用的功能,那就是没有办法在视图层对数据做一些特殊处理.比如我们从后端获取到一个时间戳,然后需要在界面上把这些日期都格式化显示为2017-01-01这种格式的日期形式,在Vue, Angular之类的前端Web框架中,提供了如filter之类相应比较好用的方案.小程序是没有这些方法的.但是最近小程序推出了wxs类型文件就是解决这类问题的. 使用 首先新建filter.wx