哥哥,不会写文档就 tm 别写,老老实实写代码行吗?

我对于各种厂商提供的对接文档提过很多次,说大家的文档写的不好。直到昨天看了友商给的文档,跟研发的小姐姐调代码调到半夜十二点,才发现还是高估了这些人的水平。

文档内容不够详细,我忍了。实例代码不全,我也忍了。测试设备对于错误二维码没有反馈,我也忍了。你们 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 快钱~~

☆版权☆

* 网站名称:obaby@mars
* 网址:https://obaby.org.cn/
* 个性:https://oba.by/
* 本文标题: 《哥哥,不会写文档就 tm 别写,老老实实写代码行吗?》
* 本文链接:https://obaby.org.cn/2024/03/16050
* 短链接:https://oba.by/?p=16050
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

70 comments

  1.  Level 2
    Google Chrome 122 Google Chrome 122 Windows 10 Windows 10 cn中国–河南–郑州 电信

    与其委屈自己,不如痛骂他人。不蒸馒头,争口气,怼他!!!

  2.  Level 5
    Firefox 123 Firefox 123 Windows 10 Windows 10 cn中国–云南–红河哈尼族彝族自治州 移动

    你这还好,我经历了多次他人写的代码,估计速度太快或者不太专业,代码里出现了几处字母错误或者前后不封闭的问题,这让我这个不懂代码去修改错误代码真头疼哈。

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      这种能看出来的问题都是小问题,大问题都是代码能跑通,但是结果不对,这才是 tm 最恶心的。

  3.  Level 6
    Google Chrome 122 Google Chrome 122 Windows 10 Windows 10 cn中国–北京–北京 电信

    加密代码实际是设备上的解密代码,而加密代码根本就 tm 的没给!!!本来有点困,瞬间精神了 哈哈哈

  4.  Level 5
    WebView 4 WebView 4 Android 12 Android 12 cn中国–广东–珠海 电信

    哎,对接第三方很坑的,别人可能敷衍,出错,怠慢。而我们又很急,真的很无奈,骂人的心都有了。上次对接个省局的接口,加班了两天周末,最后证实了是他们错了,而我加了两天班……但是最后看了你的黑丝袜图,啥火气都没了

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      这,哈哈哈。
      系统做的烂,就烂吧。但是文档别乱写啊,哈哈哈。
      我们需要从省里一个系统导数据,aspx 写的,不是说 aspx 烂。这个列表导出,第一页怎么点怎么崩溃。
      后来没办法联系他们,告知,说别从第一页导,你点到第二页在导出就好了。😂。

  5. Level 3
    Microsoft Edge 122 Microsoft Edge 122 Windows 11 Windows 11 us美国–加利福尼亚州–洛杉矶–洛杉矶 Cogent

    哈哈哈哈,啥也不懂的混子太多。
    之前和某系统对接,提供HTTP API给的CURL和Python示例,那老哥说不会HTTP,让我们提供Java的示例🤧人麻了

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      这个嘛,就没招啊。我也不会 http 呢,我这个水平也实现不了一个协议啊。😂
      不懂不要紧,问题是 tmd 别瞎写啊,浪费姐姐时间。

        1. 公主 Queen 
          Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

          哈,你干了什么让叔叔不高兴的事情了?

  6. Level 5
    Google Chrome 122 Google Chrome 122 Windows 10 Windows 10 se瑞典 Oracle_Corporation

    不干人事的人就该骂一顿!

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      嗯嗯,就是,不过这个是他们的老板。我说让他找开发完善下文档 破文档太烂了!结果跟我说没问题。这自信的,真可以。

      1. Level 5
        Google Chrome 122 Google Chrome 122 Windows 10 Windows 10 cn中国–湖北–荆州 联通/长江大学西校区

        迷之自信,不触及到根本利益,应该不会行动。

  7. Level 3
    Google Chrome 123 Google Chrome 123 Mac OS X 10.15 Mac OS X 10.15 cn中国–湖北–武汉–硚口区 电信

    让我想起了以作微信开发的时候,官方文档的实例代码,函数名结尾少了一个 s 的排查经历。

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      各种文档,水平不怎么样或者不严谨的就不要出来写文档了,太 tm 害人了。

  8. Level 3
    Microsoft Edge 122 Microsoft Edge 122 Windows 10 Windows 10 cn中国–云南–昆明 联通

    bravo该骂, 话说你同事知不知道你有博客 dance

    1. 公主 Queen 
      Google Chrome 120 Google Chrome 120 Windows 10 Windows 10 cn中国–山东–青岛 联通

      离谱啊,我不知道那是个指针嘛,哼唧唧 aggressive

  9.  Level 3
    Chrome 123 Chrome 123 iPhone iOS 17.3 iPhone iOS 17.3 cn中国–江苏–南京 移动

    太霸气了!
    话说考虑评论区显示头像?
    我向来喜欢以头像认人…

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      这个,手机端确实不显示。不过我折腾了半天还是把移动端的头像给弄出来了,太难为我胖虎了~~ kiss

  10. Level 3
    Firefox 124 Firefox 124 Windows 10 Windows 10 cn中国 中国电信

    开发文档这事,从来都是自己不想写,但会要求别人写得好。不过你说的这个,着实有点离谱。

    1. 公主 Queen 
      Google Chrome 122 Google Chrome 122 Android 10 Android 10 cn中国 中国联通

      即使不写好 最起码得写对吧。写对这个要求不高吧 big_boss

    1. 公主 Queen 
      Google Chrome 120 Google Chrome 120 Windows 10 Windows 10 cn中国–山东–青岛 联通

      群里的技术也有病,问个问题连个p都不放,遇到这种沙雕真是无语

    1. 公主 Queen 
      Google Chrome 120 Google Chrome 120 Windows 10 Windows 10 cn中国–山东–青岛 联通

      要不不写,要么就写清楚。这种垃圾货色,写了干嘛?误导人?

  11. Level 4
    Google Chrome 122 Google Chrome 122 Windows 11 Windows 11 cn中国–重庆–重庆 联通/联通信息港

    开发文档现在是不是可以把代码段喂给ai,然后给生成出来再改改?

    1. 公主 Queen 
      Google Chrome 120 Google Chrome 120 Windows 10 Windows 10 cn中国–山东–青岛 联通

      没用扔个gpt,他算都算不对,还不如我自己算

  12.  Level 2
    Microsoft Edge 122 Microsoft Edge 122 Windows 10 Windows 10 cn中国 中国电信

    碰到这种直接骂,不要委屈自己 dash边骂边说他写的烂,菜就要认,不认就接着骂。

  13. Level 3
    Safari 17 Safari 17 Mac OS X 10.15 Mac OS X 10.15 cn中国–广东–广州 电信

    现实工作中跟技术们没少打交道,有些菜鸟确实逻辑很混乱,沟通成本巨大

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–济南 联通

      技术烂就烂了,还迷之自信,真 tm 就神了 bomb

  14.  Level 4
    Google Chrome 122 Google Chrome 122 Mac OS X 10.15 Mac OS X 10.15 cn中国–上海–上海 电信

    小刀拉屁股,哈哈,第一次见到这个歇后语

  15. Level 3
    Microsoft Edge 124 Microsoft Edge 124 Windows 10 Windows 10 ca加拿大

    不是,就直接上24,28,0x55,0xAA这种数啊,我这边不定义成宏是评审不过的。
    还有else那行,先跟0x55异或,再跟0xAA异或,不就相当于跟0xFF异或,相当于取反?代码写的长有奖金吗?

    1. 公主 Queen 
      Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      哈哈哈。表酱紫,那后什么宏定义,我们都是直接扣数字的。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注