`
huangjinjin520
  • 浏览: 68500 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

基于aes的加解密方案

阅读更多
对前端上送的报文进行解密和验签
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
0
0
分享到:
评论

相关推荐

    PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案

    主要给大家介绍了关于PHP 7.1中AES加解密方法mcrypt_module_open()替换方案的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    论文研究-基于AES和模运算的密文索引方案.pdf

    针对安全密文索引建立问题, 基于AES加密和模运算, 提出了一种循环分区索引方案。该方案的索引由客户端对属性值进行AES加密和模运算得到, 具有部分保序的性质。在有效支持范围查询的同时, 该方案明显降低了等值查询时...

    毕业设计-基于AES加密的考试系统(java)

    本课题设计一种基于加密传输方案的远程考试系统. 考试前10到15天,学生下载所有考试的AES加密试卷。学生有足够的时间,所以不必担心网络速度慢。在每次考试即将开始之前,老师将通过短信发送密码以解锁该试卷,该...

    nativescript-crossplatform-aes:用于NativeScript的简单跨平台256位AES加密解密。 NativeScript和NodeJS之间的加密解密消息

    随意使用本机跨平台aes 基于Simple Cross平台256位AES加密/解密注意:我不是邻居iOS或Android的专家。 因此,如果您认为自己可以做得更好,请贡献力量:)支持平台的iOS 安卓节点JS特征: 跨平台支持。 加密解密可...

    基于matlab编写的AES加密算法程序源码.zip

    资源名:基于matlab编写的AES加密算法程序源码.zip 资源类型:程序源代码 源码说明: 基于matlab编写的AES加密算法程序源码 包含完整源码和注释 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员

    AESvsChaos:通过 AES 和基于混沌的加密方案比较图像加密

    通过 AES 和基于混沌的加密方案比较图像加密 用法:通过使用 mode = Cipher.ENCRYPT_MODE 运行 Main.java 来加密任何图像(按照那里的说明进行操作)使用密钥解密图像并使用 mode = Cipher.DECRYPT_MODE 运行 Main....

    基于AES加密存储的磁盘销毁策略

    针对在紧急时刻对磁盘内敏感数据销毁的要求,结合 AES 加解密算法,提出了一种基于加密存储的磁盘快速销毁的方案,以满足在紧急时刻对数据销毁在时间和安全上的要求。详细论述了该方案的原理方法以及依据,通过该...

    基于AES和模运算的密文索引方案 (2013年)

    针对安全密文索引建立问题, 基于AES加密和模运算, 提出了一种循环分区索引方案。该方案的索引由客户端对属性值进行AES加密和模运算得到, 具有部分保序的性质。在有效支持范围查询的同时, 该方案明显降低了等值查询时...

    chatroom encryption support AES 128 bits-开源

    您可以在自己的计算机网络上以明文或基于AES密码的加密方式与其他对等方聊天。 AES加密和解密基于128位密钥,可通过从提供的密码中填充生成的SHA256来实现。 简而言之,SHA是一个校验和,当单个位更改时,SHA就会...

    ZigBee通信安全防护系统

    第三章:系统原理及实现,主要介绍系统中各部分的实现原理,重点介绍了AES加解密算法,详细介绍了具体实现技术及过程等;第四章:系统测试及分析,主要进行了AES加解密测试,网络安全监测和报警测试及相应的分析;第...

    数据传输加密设计方案1

    基于AES算法的解决思路:前后端保存相同秘钥AES_key,每次传输数据时,调用加密函数,生成密文发送给对方,对方接收后使用相同秘钥AES_key解密,获得内容

    一种基于AES和三素数RPrime RSA认证加密方案 (2008年)

    运用中国剩余定理加快处理三素数RPfime RSA解密算法,提出了一种全新的基于AES算法和三素数 RPfime RSA算法的认证加密方案,具有高效、安全等特点,非常适合在智能卡之间、智能卡和终端之间的认证和信息交换。

    实验三、AES的CBC以及CTR模式

    实现两个基于 AES 的加密/解密系统,一个在 CBC 模式下使用 AES,另 一个在 CTR 模式下使用 AES。 在这两种情况下,16 字节的初始向量 IV 都 是随机选择的,并已放在密文中。对于 CBC 加密,请使用课程中讨论的 PKCS...

    一种基于CPUID和AES算法的STM32固件升级方案

    针对STM32系统固件升级时使用同一个文件易被非法复制使用的缺陷,提出并实现了一种一个STM32芯片使用一个唯一升级文件的固件升级方案。升级固件时,由服务器为不同的STM32芯片生成不同的bin文件,该bin文件是以STM32...

    基于内外混合流水线的高吞吐率AES结构

    提出了一种基于加解密轮内外流水线的、高性能及高吞吐率的128 bit AES算法的硬件实现方法。在此之前人们多采用查找表来实现AES算法中的SubBytes和InvSubBytes转换过程,本设计则仅仅使用了进行复合域运算的组合逻辑...

    信息安全综合实验-基于数据库加密的网页防篡改系统设计与实现源码+sql数据库.zip

    本项目使用AES对称加密算法,设计实现了对数据库数据的加密,往数据库添加数据需要加密,从数据库取出的数据在形成动态页面前要先解密,黑客无法在没有加密秘钥的情况下获取数据库信息、篡改数据库从而篡改网页信息...

    嵌入式系统/ARM技术中的基于Nios II的语音加密传输系统设计

    介绍了进行语音信号处理的功能模块,包括语音采集回放模块、基于G.729A的语音压缩与解压缩模块和基于AES的数据加解密模块。在控制模块的协调下,使得语音数据通过MODEM能够在公共电话网中安全地传输,实现了语音的...

    基于Xilinx FPGA的片上系统无线保密通信终端设计

    系统就不够灵活,升级困难,况且实现起来有很大的难度,本系统以AES加密算法为例,使用Xilinx SPARTAN 3E为开发平台,以Xilinx的嵌入式软核Microblaze为主控制器,调用FPGA的硬件VHDL编程实现的AES加解密和控制CC...

    sql数据库相关加密知识

    数据库加解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统...

    论文研究-基于EFI和双核处理器的DRMagent.pdf

    提出一种基于EFI和双核处理器的DRM终端平台,该平台能满足大多数DRM系统的安全需求,特别是能够防止版权加密密钥和解密后的数字内容被泄露给用户。在该架构下,给出了详细的播放流程;同时,在半离散P2P网络中,提出...

Global site tag (gtag.js) - Google Analytics