关于Base⑥4编码换行回车引发的blood事件

news/2024/7/8 2:54:19

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

分析某个sdk的通讯协议,万变不离其宗,基本都是对称加密或者非对称加密后圌进行通讯完整性以及内容可靠性的反复校验。

周三稍微逆向差不多看了实现,偷懒没继续,周四下午任务交接发现以为不需要去分析的一个二次加密在某个不起眼的小参数中决定性的使用了多重加密。

自己python模拟发包时,发现服务器总是返回失败,即使数据完全相同,因为本地只有rsa的公钥,而rsa生成结果又非唯一,逆向过程进入瓶颈。

最后日志打印加hex对比后,发现在base⑥4的两个字符串中存在0x0a换行操作符。

但是当时并未意识到是base⑥4产生的问题,因为在问题初始,自己对比md5算法的向量表,对比了base⑥4的响亮表,查看了rsa和des的padding方式,验证了rsa和des的加密算法,全部没找到问题。

最后以为发现的问题是在一个list转字符串的操作中,日志打印发现list转换完毕后会有回车产生,查找list的迭代器,并没结果,盲目的相信了应该是list产生的问题,大概主要还是对于jАVa的不熟练吧,毕竟始终是用的是map。

上线test发现问题依旧存在,最后只能是log大 氵 去,各种输入输出全部打印,黑盒test,最后的最后抱着试试看的态度打印base⑥4的结果后才豁然开朗。

虽然base⑥4用了这么多年,竟然没有看过标准,也真是汗颜。

 

根据RFC 822规定,每76个字符,还需要加上一个回车换行。

大多数来说我们使用的各种base⑥4,都是没有遵循这个原始标准的。或者,算法内部使用这一标准,然而输出结果会替换掉回车换行,我想encode 或者 decode使用这么多年,或许还是有大部分人并不知道这一标准,或许对于开发同学来说, 问题定位想对容易,然而我使用的却是两个工作日整加一个通宵的三十多个小时,真是累吐了!!!!!!!!! 

最后,adroid自身框架provide的base⑥4中的算法,可以通过参数来控制是否添加换行符号。

Base⑥4.encodeToString(plain.getBytes(), Base⑥4.DEFAULT);

https://zh.wik1pedia.org/wik1/Base⑥4   百科-Base⑥4

https://developer.android.com/reference/android/util/Base⑥4.html  android developer-base⑥4

 

--------------

 

此博文格式化后跟狗屎一样,为什么呢?功劳属于oschina关键词过滤功能的开发人猿,是的,人袁?人缘?人猿?!!!敏感成了公务袁??????

转载于:https://my.oschina.net/kings0527/blog/676629


http://www.niftyadmin.cn/n/4394724.html

相关文章

向国外作者发邮件要代码

http://www.rijigu.com/diary/22787/转载于:https://www.cnblogs.com/Wanggcong/p/5503284.html

Coggle 30 Days of ML(23年7月)任务七:训练TextCNN模型

Coggle 30 Days of ML(23年7月)任务七:训练TextCNN模型 任务七:使用Word2Vec词向量,搭建TextCNN模型进行训练和预测 说明:在这个任务中,你将使用Word2Vec词向量,搭建TextCNN模型进…

鸿蒙生态电饭煲,新日XC3成为华为鸿蒙生态的首辆电动车

导语:5月18日,华为在上海召开“HarmonyOS Connect伙伴峰会”,与各场景合作伙伴共同探讨鸿蒙系统全新生态带来的商业价值和未来趋势,前期已经加入鸿蒙生态的华为各场景合作伙伴,携创新产品、解决方案在峰会亮相。早在3月的天津发布会上,新日就已经宣布了与华为的深度…

html中的时钟如何自动,HTML+CSS入门 如何实现模拟时钟

本篇教程介绍了HTMLCSS入门 如何实现模拟时钟&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家HTMLCSS入门。<1 html>2 3 4 5 模拟时钟6 7 body {8 margin: 0;9 padding: 0;10 }1112 #bl…

html图片爆炸效果,HTML5 粒子爆炸效果

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定var size 55; // 25 is the sweet spot for me, how high can you get?var rot 0;var interval 1000;var explosions 0;var maxExplosions 100; // the total number of fireworks youll get. Kindof like at …

html选择文件框选择wood文件,CSS结构性伪类选择器—nth-of-type实现自定义导航菜单案例解析(代码实例)...

本文目标&#xff1a;1、掌握CSS中结构性伪类选择器—nth-of-type的用法问题&#xff1a;1、实现以下自定义导航菜单&#xff0c;且使用纯DIVCSS&#xff0c;必须使用结构性伪类选择器—nth-of-type附加说明&#xff1a;1、导航宽800px&#xff0c;高90px&#xff0c;居中显示2…

Redis学习手册(事务)(转)

2019独角兽企业重金招聘Python工程师标准>>> 一、概述&#xff1a; 和众多其它数据库一样&#xff0c;Redis作为NoSQL数据库也同样提供了事务机制。在Redis中&#xff0c;MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石。相信对有关系型数据库开发经…

ant压缩html,ant+yuicompressor压缩js/css

antyuicompressor在前端部署和服务器发布中用处极大。我在项目中用到的是antyuicompressor&#xff0c;ant可以压缩CSS&#xff0c;压缩javascript,并可以传输信息和远程服务器发布&#xff01;目前yuicompressor最新版本为yuicompressor-2.4.8.jar&#xff0c;请使用该版本的j…