最近在对于某一个(省略)功能进行联调功能:

大致需求:消息以JSON格式显示--JSON分为消息头(header),消息体(body),消息签名(mac)--通过AES对body内部值进行加密,通过MD5对header+body信息进行加密成mac值;

其实思路真的很简单,但是在测试上真的是测试的不少的天数,原因何在呢?

测试缓慢的原因:

  • 1、对于需求细节还欠缺了解-->到底对谁加密?加密前后关系,先对body加密,还是先加密成mac?……
  • 2、对于细节研究不专心-->最后的一根稻草被加密过程中的换行符所压倒;

本篇主要还是对于加密过程中的过程进行分析:

在测试的过程中,愈来愈发现自己的赋值已经没有了问题,但是为何加密之后,传回来的响应报文却总是"报文错误(mac解析错粗),到底是哪里出现了问题?

  • 分析一:通过AESTools1.jar工具进行测试,对比自己的代码以及其工具生成是否保持一致;
  • 分析二:仔细查询结果,从发送报文加密前后进行分析;

首先对于分析一而言:当拿到这个jar的时候,你是否能够快速的响应?到底该如何使用?在这里有两种思考:思考一,我不想进行返回值对比,只想使用其中的某个类,比如:AesEncrypt加密解密类,我该如何处理?首先使用解压工具对其进行解压操作;

但是其类型并非是.java类型,我们可以采用反编译工具比如:JD-GUI 来进行反编译操作。最后可以很方便的看到自己想要的代码类,我们直接选择我们想要的即可。

除了使用其jar包中的代码为我所用,我们可以直接使用这个工具对其结果进行分析对比操作。

通过dos窗口,执行操作:java -jar jar包路径

分析二:对于分析一而言,自己并没有找到什么问题,一切都很顺利,那么到底是哪里的问题?自己对比body,mac加密前后以及自己最后的请求报文自己发现了问题:

红色标记部分body加密信息为何不一致?自己分析就会发现居然在自己的眼皮之下多了"换行符"!!自己对于body是通过AES加密的,在调试的过程中,其实很容易发现:

Base64加密到了一定长度会自动换行,就如上图所示,所以必须得想办法去掉换行符。如上图所示直接加密之后对其进行操作可以,同样也可以在其根源Base64加密方法上进行replaceAll操作,这样避免本模块大量的加密过程多次换行操作。

本篇主要还是讲述了两点:

  • 点一:反编译软件的使用;
  • 点二:加密过程中换行符的使用;

行是知之始,知是行之成。——陶行知

加密解密--换行符作祟相关推荐

  1. Python_基础语法_字符串基本操作__声明方式_占位符_切片_转义字符_加密解密(6)

    目录: 一.字符串介绍 1.字符的渲染 2.字符的编码 3.不可变类型 二.字符串的基本操作 1.字符串声明 2.字符串占位符号 3.字符串索引切片(包含练习) 4.字符串转义 三.字符串的高级操作 ...

  2. ASP的DES加密解密

    前两天学到对称密码DES算法,然后就自己亲手写了个实现程序出来,好多地方用得着呐.这里是用ASP实现,当然也就是可以移到VB啦.懂得怎样写后写成什么语言都行啦,只要懂得那门语言.如果有朋友想知道具体D ...

  3. [crypto]-53-openssl命令行的使用(aes/rsa签名校验/rsa加密解密/hmac)

    常用技巧 如何编写一个二进制规律性的文件, 比如你可以编写一个"0123456789abcdef"的文本文件,记得删除换行符然后用ultraedit打开,ctrl+H就可以看到二进 ...

  4. excel怎么添加换行符_在Excel公式中添加换行符

    excel怎么添加换行符 在Excel公式中添加换行符 (Add Line Break in Excel Formula) It's easy to add a line break when you ...

  5. 加密解密系统研究毕业论文

    加密解密系统研究毕业论文     摘要: DES算法DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准 题       目 加密解密系统研究 学       院 台州广播电视大学 专    ...

  6. 安全不安全002:C#实现RSA算法加密解密

    通过前面的文章我们学会了如何生成公钥和私钥,详见这篇文章:https://blog.csdn.net/yysyangyangyangshan/article/details/80368397. 那么, ...

  7. asp+html加密最终版,ASP后门之终极伪装+在线琳法ASP加密解密网站安全 -电脑资料...

    里面的原理是将换行/回车符替换成"琳"字,至于那个"输入一个-95~+95之间的数"是为了找一个手动的随机数,在解 密的过程也可以用到, 先试用了一下: 我在C ...

  8. OC RSA加密解密

    好久好久没有更新了...你们等的急不急..这不,我就姗姗来迟了...本文重点讲解一下iOS系统下的RSA加密解密问题. 一般为了安全,私钥是不会给前端暴露出来 的,只会通过私钥生成一个公开的公钥提供给 ...

  9. 密码学之仿射加密解密算法

    仿射变换的加密解密分别是: c = Ea,b(m)  ≡ a, + b(mod 26) m = Da,b(c) ≡ a^-1(c - b)(mod 26) 其中,a,b是密钥,为满足0≤a,b≤25和 ...

最新文章

  1. Py之any函数【转载】
  2. Foudation框架常用结构体和常用类
  3. 测试文章测试文章测试文章测试文章测试文章
  4. 51nod 1343 行列式的根
  5. MySQL weekday()函数
  6. c++的vector容器
  7. 超棒的视差滚动效果javascript类库 - Jarallax
  8. mysql 创建表 引号_Mysql建表语句中显示双引号的方法介绍
  9. java版hive的UDF(临时函数与永久函数)
  10. maven构建Hibernate项目
  11. Linux基础命令之sed用法
  12. 2015/8/26 Python基础(1):基本规则及赋值
  13. Android 5.0+(RecycleView、CardView、Palette)
  14. 【java笔记】类的抽象
  15. resetuser.php,Php开发过程中不常碰到的error (2.25更新)
  16. mysql8.0升级_MySql版本升级(8.0.19升级到8.0.22)
  17. vmware vSAN 入门
  18. Scratch 3.0 指令大全-“运动”类别的详细介绍②
  19. 大数据发展前景及发展战略分析
  20. 【查缺补漏】工作中遇到的问题集锦01

热门文章

  1. Adding Animations之Zooming a View
  2. glusterfs分布式文件系统详细原理
  3. 证明:每个有n个顶点的连通图都至少有n-1条边 Show that every connected graph with n vertices has at least n − 1 edges.
  4. COB,COF,COG区别
  5. c语言.jpg图片转成数组_AWTK——基于C语言开发的GUI框架,功能强大,支持跨平台同步开发...
  6. 【C++】Lambda 表达式详解
  7. 数据恢复如何看异或问题
  8. 定时定点打卡活动策划使用小程序解决方案 greeting = “Good day“;
  9. nodejs中https和ca证书
  10. 【智能优化算法】蚁群算法ACO