我对于各种厂商提供的对接文档提过很多次,说大家的文档写的不好。直到昨天看了友商给的文档,跟研发的小姐姐调代码调到半夜十二点,才发现还是高估了这些人的水平。
文档内容不够详细,我忍了。实例代码不全,我也忍了。测试设备对于错误二维码没有反馈,我也忍了。你们 tmd 给的加密算法都是错的让我怎么忍?
咱们来还原下事情经过,昨天有个设备着急上线,根据之前厂商给的对接文档已经对接玩了,就剩下现场测试。等我带人带设备去测试的时候发现对应的项目没有给密钥。在群里问他们要密钥,结果直接扔了个文档过来,告知,他们的算法升级了!
艹,你他妈的说升级就升级,升级这么久了连个 p 都不放。我们要上线了,你跟我说升级了?我可去你妈的!
升级就升级吧,我忍了,看了下文档并不复杂。写后端的小姐姐对于加密这一块不是很熟练,于是作为一个全栈程序媛,只好带着小姐姐写二维码字符串的生成算法。
虽然不是很专业,但是拿到文档之后一个多小时也基本把算法集成完了。
又屁颠屁颠的跑到项目上测试,结果能改的参数配置都改了,设备就是不识别。在群里咨询,沙雕们也是爱答不理的,给他们老板打了个电话,让他们配合下,也没什么卵用,真 tm 垃圾。这尼玛就离谱了啊,在现场折腾了两个小时无果之后。准备回公司再研究一下,走之前给项目经理打了个电话,告知二维码不好使,他说他有能用的二维码。然后给我发了一个。
唉,你别说,还真 tm 是好使的。
既然有了能用的二维码,那么就可以对比下看看到底是哪里的问题了。
想着算法既然基本都是异或加密,那么两次异或之后就得到原来的字符串了,直接把二维码加密后的字符串扔进去,果然拿到了明文信息。对比了一下给的各种参数没有发现错误。
但是自己想要把字符串加密回去却怎么也做不到,数组开始第一个加密之后就是错的。为了对比是哪里的问题,连计算器都用上了,算到底是不是自己简单的数值运算都有问题。尝试多次之后怎么也得不到他们二维码上的字符串,让我一度怀疑数学不存在了。同样的东西加密之后竟然结果不一样,但是竟然还能解密回去,怎么有这种事情?
当然,这个世界上在计算机领域出现玄学事件的概率不大,尤其是多次出现。开发小姐姐给拿了个本子说,你画一下加密和解密流程。是不是哪里取得数值不对?
拿到本子之后,简单的画了一下,理清楚了:这个解密过程,除了第 25 个,其他的都是直接用原来的 25 个数值参与了异或运算。第二十五个直接跟 0xaa 异或了。
那么要加密数据,应该先对地 25 个进行异或,然后对其他的数据在进行处理(这个在解密字符串的时候就该想到了,不过折腾了一晚上脑子有点迷糊了),到这里基本就理清楚逻辑了。也就是说,他们文档里给的加密代码实际是设备上的解密代码,而加密代码根本就 tm 的没给!!!
这真是高级啊,第一次见文档还能这么写的。真是小刀拉屁股了。如果没有项目经理给的那个二维码,就用他们这个加密算法去生成控制二维码,哪怕宇宙爆炸了也算不对!
艹,会写文档就好好写,不会写就 tm 别瞎写好吗?真 tm 傻吊!艹!让自己白白多浪费了四五个小时!
15:50后续,哼唧唧,不开心呢。跟老板反馈了人家也不承认啊,说代码没问题。哦吼,这就很棒呢,就喜欢嘴硬的。
哎,多年不写 C 语言的代码了,这逼着我又跑了一遍 C 语言的代码:
/****************************************************************************** Online C Compiler. Code, Compile, Run and Debug C program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include <stdio.h> void encryptData(int *encryptBuff,int *sourceBuff) { int i; for(i = 0;i<28; i++) { if(i == 24) { *(encryptBuff + 24) = *(sourceBuff + 24) ^ 0xbb; } else { *(encryptBuff + i) = *(sourceBuff+ i) ^ *(sourceBuff + 24) ^ 0x44 ^ i ^ 0Xbb; } } } int main() { int source[28] ={0XAA,0xbb,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x55,0x55,0x55,0x55, 0xab,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e}; int enc[28]; encryptData(enc,source); int i; printf("原始数组 = "); for (i = 0; i<28; i++) printf("%x ", source[i]); printf("\r\n第一次加密 = "); for (i = 0; i<28; i++) printf("%x ", enc[i]); int reenc[28]; encryptData(reenc,enc); printf("\r\n第二次加密 = "); for (i = 0; i<28; i++) printf("%x ", reenc[i]); return 0; }
为什么要酱紫呢? 上面代码没有本地编译器可以通过这个地址在线运行:https://www.onlinegdb.com/online_c_compiler
以我浅薄的计算机常识理解,加密循环 100 次也还原不了。谁要是能实现了,姐姐我奖励 100 快钱~~
70 comments
与其委屈自己,不如痛骂他人。不蒸馒头,争口气,怼他!!!
关键是真 tm 太傻逼了
你这还好,我经历了多次他人写的代码,估计速度太快或者不太专业,代码里出现了几处字母错误或者前后不封闭的问题,这让我这个不懂代码去修改错误代码真头疼哈。
这种能看出来的问题都是小问题,大问题都是代码能跑通,但是结果不对,这才是 tm 最恶心的。
是的。明明是东,他偏偏要你往西
直接疯掉
加密代码实际是设备上的解密代码,而加密代码根本就 tm 的没给!!!本来有点困,瞬间精神了 哈哈哈
是的,就是这个意思。
哎,对接第三方很坑的,别人可能敷衍,出错,怠慢。而我们又很急,真的很无奈,骂人的心都有了。上次对接个省局的接口,加班了两天周末,最后证实了是他们错了,而我加了两天班……但是最后看了你的黑丝袜图,啥火气都没了
这,哈哈哈。
系统做的烂,就烂吧。但是文档别乱写啊,哈哈哈。
我们需要从省里一个系统导数据,aspx 写的,不是说 aspx 烂。这个列表导出,第一页怎么点怎么崩溃。
后来没办法联系他们,告知,说别从第一页导,你点到第二页在导出就好了。😂。
哈哈哈哈,啥也不懂的混子太多。
之前和某系统对接,提供HTTP API给的CURL和Python示例,那老哥说不会HTTP,让我们提供Java的示例🤧人麻了
这个嘛,就没招啊。我也不会 http 呢,我这个水平也实现不了一个协议啊。😂
不懂不要紧,问题是 tmd 别瞎写啊,浪费姐姐时间。
别动我电脑。
信不信,他们认为写的还很通俗易懂。
太通俗易懂了
你文章的评论框呢?关闭了?
叔叔联系我,要我变成非交互
哈,你干了什么让叔叔不高兴的事情了?
哈哈,嘿嘿。
不干人事的人就该骂一顿!
嗯嗯,就是,不过这个是他们的老板。我说让他找开发完善下文档 破文档太烂了!结果跟我说没问题。这自信的,真可以。
迷之自信,不触及到根本利益,应该不会行动。
是的,无动于衷
是的,无动于衷
让我想起了以作微信开发的时候,官方文档的实例代码,函数名结尾少了一个 s 的排查经历。
各种文档,水平不怎么样或者不严谨的就不要出来写文档了,太 tm 害人了。
让项目经理去骂他们一顿,哈哈哈
该骂, 话说你同事知不知道你有博客
不知道 哈哈哈
我一直以为是逆向媛,谁知道是全栈逆向媛 。
可不 哈哈😄
说话霸气,技术高超
哇,100呢!
赶紧吧
表示不会,哈哈~
人老板也懂技术,很少见哈哈哈哈哈
离谱啊,我不知道那是个指针嘛,哼唧唧
太霸气了!
话说考虑评论区显示头像?
我向来喜欢以头像认人…
这个,手机端确实不显示。不过我折腾了半天还是把移动端的头像给弄出来了,太难为我胖虎了~~
动手能力极强,有头像舒服多了
还是全能女王担下了所有。
都是自己写的才好,直接烂到底
太浪费时间了,坑人啊
开发文档这事,从来都是自己不想写,但会要求别人写得好。不过你说的这个,着实有点离谱。
即使不写好 最起码得写对吧。写对这个要求不高吧
忍无可忍,干他!!
群里的技术也有病,问个问题连个p都不放,遇到这种沙雕真是无语
技术媛的各种腿
讨厌写文档,讨厌别人不写文档。
要不不写,要么就写清楚。这种垃圾货色,写了干嘛?误导人?
开发文档现在是不是可以把代码段喂给ai,然后给生成出来再改改?
没用扔个gpt,他算都算不对,还不如我自己算
哈哈,看得出来,很气愤
是的,太tm坑人了
虽然我不懂代码,但我也能感受到你的愤怒程度
打死他~~
碰到这种直接骂,不要委屈自己 边骂边说他写的烂,菜就要认,不认就接着骂。
这大哥也是过度自信,妹的
就喜欢这种嘴硬的哈哈
哈哈哈,这种就是纯粹死鸭子类型的
现实工作中跟技术们没少打交道,有些菜鸟确实逻辑很混乱,沟通成本巨大
技术烂就烂了,还迷之自信,真 tm 就神了
小刀拉屁股,哈哈,第一次见到这个歇后语
开了眼了吧,哈哈哈
不是,就直接上24,28,0x55,0xAA这种数啊,我这边不定义成宏是评审不过的。
还有else那行,先跟0x55异或,再跟0xAA异或,不就相当于跟0xFF异或,相当于取反?代码写的长有奖金吗?
哈哈哈。表酱紫,那后什么宏定义,我们都是直接扣数字的。