没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
AES 报文加密
AES 对称加密
RAS 非对称加密
接口请求的数据采用 AES 方式加密
AES 加密模式
CBC
填充模式
zeropadding
密钥 KEY 长度说明
16 字节(128bit)
偏移量
和密钥 KET 内容相同
输出
hex(16 进制串)
字符集
Utf-8
注意:Java 没有 zeropadding 填充模式,需要自行实现,或者采用外联平台提供的
Java SDK 进行实现,.net 和 php 本身就支持该模式填充。
比如对 body 的值进行加密后传给后台,后台再解密
这是一种 post 请求传 json 字符串的方式
JSON 示例(解密前)
节点说明
{
"head":{
报文头对象
"version":"3.9.5",
报文头-接口版本
"businessCode":"pay_01",
报文头-业务代码
"sourceCode":"110",
报文头-业务来源(接入渠道)
"enterpriseId":"335"
报文头-服务企业(院区代码)
"token":"5B3864A9C5DF7"
授权令牌(Token)
},
报文头结束
"body": "5B3864A9C5DF7EFC63434A3F"
报文体-AES 加密密串
获取 body 值后进行解密,得到如下信息
对参数加密如下:
/**
*
异步支付下单
*
* @param dto
* @param request
* @return
*/
@Override
public String createAsynBusPay(AsynBusPayDTO dto, HttpServletRequest
request) {
String token = request.getHeader("token");
Map map3 = new HashMap();
map3.put("version", "1.0.1");
map3.put("businessCode", "asynBusPay");
map3.put("sourceCode", "130");
map3.put("enterpriseId", "445");
map3.put("token", token);
Map map2 = new HashMap();
map2.put("body", Utils.encrypt(JSON.toJSONString(dto)));
map2.put("head", JSON.toJSON(map3));
}
请求报文结束
JSON 示例(节点)
节点说明
{
"head":{
报文头对象
"version":"3.9.5",
报文头-接口版本
"businessCode":"pay_01",
报文头-业务代码
"sourceCode":"110",
报文头-业务来源(接入渠道)
"enterpriseId":"335"
报文头-服务企业(院区代码)
},
报文头结束
"body":{
报文体对象开始
"field1":"001",
字段示例 1
"field2":"002",
字段示例 2
........
第 N 个字段
}
报文体结束
}
请求报文结束
String jsonString = JSON.toJSONString(map2);
log.info("异步支付下单,请求参数####{}", jsonString);
String post = Utils.sendPostByJsonString(PAYHTTPURL, jsonString);
return Utils.desEncrypt(post);
}
加密解密类:
package com.bkgx.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import static com.bkgx.utils.Constants.OFFSET;
import static com.bkgx.utils.Constants.SECRETKEY;
/**
* @author iszengziqiang@163.com
* @date 2021/1/22 09:58
* @Version: 1.0
* @desc //todo
工具类
*/
@Slf4j
public class Utils {
剩余14页未读,继续阅读
资源评论
天使的梦魇
- 粉丝: 29
- 资源: 321
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
- 基于单片机的风力发电机转速控制源码
- 基于C++实现的风力发电气动平衡监测系统+源代码+测量数据(高分课程设计)
- 毕业设计- 基于STM32F103C8T6 单片机,物联网技术的太阳能发电装置+源代码+文档说明+架构图+界面截图
- 基于 LSTM(长短期记忆)(即改进的循环神经网络)预测风力发电厂中风力涡轮机产生的功率+源代码+文档说明
- 基于stm32f103+空心杯电机+oled按键+运动算法
- 《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第1章docker基础(1.1-1.4)
- 基于python实现的水下压缩空气储能互补系统建模仿真与经济效益分析+源代码+论文
- 华中科技大学-自然语言处理实验,Bi-LSTM+CRF的中文分词框架,并且利用基于深度学习的方法进行中文命名实体识别++源码报告
- 基于动态罚函数的铁路车流分配与径路优化模型python源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功