对前端上送的报文进行解密和验签
1、前端上送的报文先进行整体加密,然后把整体加密的数据作为encodeFieldVals的值;同时前端一起上送到后端的数据包括整体加密的aesKey
前端请求后端的例子:
http://127.0.0.1:8080/btoa/user/login
{
encodeFieldVals=加密数据,
aesKey=整体加密的aesKey
}
2、后端获取encodeFieldVals和aesKey的值,使用aesKey对encodeFieldVals进行整体解密,整体解密后encodeFieldVals的数据格式为json格式。
解密后数据格式如下:
{
"deviceId" :"a123xwsdfx4554rcffffooc87",
"osVersion" : "5.1.10",
"userName" : "王五",
"password" : "a123xwsdfx4554rcffffooc87a123xwsdfx4554rcffffooc87"
"phoneNo" :"a123xwsdfx4554rcffffooc87a123xwsdfx4554rcffffooc87a123xwsdfx4554rcffffooc87",
"sex" : "男",
encryptFields : "password,phoneNo",
serverTimestamp : "1200000",
signtrue : "asfdsafax3134134912341241WQ"
}
3、验签,整体解密后的json有个字段signtrue,该字段是前端对数据的签名;把前端传到后台的所有key值进行排序,然后把除了key为signtrue和encodeFieldVals的所有可以按如下格式:
fieldName1=fieldValue1&fieldName2=fieldValue2……
组装成字符串;进行签名后与signtrue进行比较,如果相等说明验签成功;否则验签失败。
4、单字段加密,整体解密加密后的json数据里,有部分敏感信息字段进行了加密,已经加密的字段有encryptFields指定,以英文逗号分隔。把这些字段的值拿到进行单字段解密。
流程图:
对返回前端的报文进行加密和加签
1、如果配置了全部加密,则获取返回前端的数据进行全部加密,并把加密的数据作为encodeFieldVals的值返回
2、获取返回前端的数据根据配置的字段对需要加密的单字段进行加密,并把加密的数据作为encodeFieldVals的值返回前端,同时返回的json中包含encryptFields标识哪些字段做了单字段加密处理。
{
"respCode":"000000",
"respMsg":"交易成功",
"userId" : "afasfa134dfdasf",
"email" : "huang@sina.com",
"phoneNo" : "13711645814",
"nickName" : "霸王",
"accountInfo" : {
"accountNo" : "A1237897029",
"identityId" :"440902198609228090",
"nameName" : "赵六",
"validateDate" :"20101010-20221010"
},
signtrue : "asfdsafax3134134912341241WQ",
encryptFields:"identityId,nameName"
}
3、返回加密后的数据到前端
流程图:
- 大小: 26.1 KB
- 大小: 31.9 KB
- 大小: 30.2 KB
- 大小: 27.8 KB
- 大小: 39.9 KB
分享到:
相关推荐
主要给大家介绍了关于PHP 7.1中AES加解密方法mcrypt_module_open()替换方案的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
针对安全密文索引建立问题, 基于AES加密和模运算, 提出了一种循环分区索引方案。该方案的索引由客户端对属性值进行AES加密和模运算得到, 具有部分保序的性质。在有效支持范围查询的同时, 该方案明显降低了等值查询时...
本课题设计一种基于加密传输方案的远程考试系统. 考试前10到15天,学生下载所有考试的AES加密试卷。学生有足够的时间,所以不必担心网络速度慢。在每次考试即将开始之前,老师将通过短信发送密码以解锁该试卷,该...
随意使用本机跨平台aes 基于Simple Cross平台256位AES加密/解密注意:我不是邻居iOS或Android的专家。 因此,如果您认为自己可以做得更好,请贡献力量:)支持平台的iOS 安卓节点JS特征: 跨平台支持。 加密解密可...
资源名:基于matlab编写的AES加密算法程序源码.zip 资源类型:程序源代码 源码说明: 基于matlab编写的AES加密算法程序源码 包含完整源码和注释 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员
通过 AES 和基于混沌的加密方案比较图像加密 用法:通过使用 mode = Cipher.ENCRYPT_MODE 运行 Main.java 来加密任何图像(按照那里的说明进行操作)使用密钥解密图像并使用 mode = Cipher.DECRYPT_MODE 运行 Main....
针对在紧急时刻对磁盘内敏感数据销毁的要求,结合 AES 加解密算法,提出了一种基于加密存储的磁盘快速销毁的方案,以满足在紧急时刻对数据销毁在时间和安全上的要求。详细论述了该方案的原理方法以及依据,通过该...
针对安全密文索引建立问题, 基于AES加密和模运算, 提出了一种循环分区索引方案。该方案的索引由客户端对属性值进行AES加密和模运算得到, 具有部分保序的性质。在有效支持范围查询的同时, 该方案明显降低了等值查询时...
您可以在自己的计算机网络上以明文或基于AES密码的加密方式与其他对等方聊天。 AES加密和解密基于128位密钥,可通过从提供的密码中填充生成的SHA256来实现。 简而言之,SHA是一个校验和,当单个位更改时,SHA就会...
第三章:系统原理及实现,主要介绍系统中各部分的实现原理,重点介绍了AES加解密算法,详细介绍了具体实现技术及过程等;第四章:系统测试及分析,主要进行了AES加解密测试,网络安全监测和报警测试及相应的分析;第...
基于AES算法的解决思路:前后端保存相同秘钥AES_key,每次传输数据时,调用加密函数,生成密文发送给对方,对方接收后使用相同秘钥AES_key解密,获得内容
运用中国剩余定理加快处理三素数RPfime RSA解密算法,提出了一种全新的基于AES算法和三素数 RPfime RSA算法的认证加密方案,具有高效、安全等特点,非常适合在智能卡之间、智能卡和终端之间的认证和信息交换。
实现两个基于 AES 的加密/解密系统,一个在 CBC 模式下使用 AES,另 一个在 CTR 模式下使用 AES。 在这两种情况下,16 字节的初始向量 IV 都 是随机选择的,并已放在密文中。对于 CBC 加密,请使用课程中讨论的 PKCS...
针对STM32系统固件升级时使用同一个文件易被非法复制使用的缺陷,提出并实现了一种一个STM32芯片使用一个唯一升级文件的固件升级方案。升级固件时,由服务器为不同的STM32芯片生成不同的bin文件,该bin文件是以STM32...
提出了一种基于加解密轮内外流水线的、高性能及高吞吐率的128 bit AES算法的硬件实现方法。在此之前人们多采用查找表来实现AES算法中的SubBytes和InvSubBytes转换过程,本设计则仅仅使用了进行复合域运算的组合逻辑...
本项目使用AES对称加密算法,设计实现了对数据库数据的加密,往数据库添加数据需要加密,从数据库取出的数据在形成动态页面前要先解密,黑客无法在没有加密秘钥的情况下获取数据库信息、篡改数据库从而篡改网页信息...
介绍了进行语音信号处理的功能模块,包括语音采集回放模块、基于G.729A的语音压缩与解压缩模块和基于AES的数据加解密模块。在控制模块的协调下,使得语音数据通过MODEM能够在公共电话网中安全地传输,实现了语音的...
系统就不够灵活,升级困难,况且实现起来有很大的难度,本系统以AES加密算法为例,使用Xilinx SPARTAN 3E为开发平台,以Xilinx的嵌入式软核Microblaze为主控制器,调用FPGA的硬件VHDL编程实现的AES加解密和控制CC...
数据库加解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统...
提出一种基于EFI和双核处理器的DRM终端平台,该平台能满足大多数DRM系统的安全需求,特别是能够防止版权加密密钥和解密后的数字内容被泄露给用户。在该架构下,给出了详细的播放流程;同时,在半离散P2P网络中,提出...