b32怎么用才对?新手看这里快速上手教程!

天美租号

今天得空,正好把前两天捣鼓那个叫“b32”的玩意儿的经历给记下来,省得以后忘。

事情是这样的,前几天接手一个老旧的小模块,代码不多,但是里面有个地方反复出现“b32”处理的字眼。当时我就纳闷,这“b32”是啥玩意儿?听着有点像加密或者编码之类的,但又没见过。

第一步:瞎琢磨与找线索

b32怎么用才对?新手看这里快速上手教程!

一开始我没想太多,就觉得可能是某个库或者内部约定俗成的叫法。我就先全局搜下项目代码,看看这“b32”到底在哪儿定义的,或者有没有注释啥的。结果搜一圈,除用到它的地方,愣是没找到它的“出生证明”,注释更是干净得像洗过一样,啥也没有。

这就有点头大。我又去翻相关的文档,也是石沉大海。问旁边几个老同事,他们也一脸茫然,说好像有点印象,但具体是啥也说不清楚,毕竟年头有点久。

捣鼓过程

没办法,只能硬着头皮看代码逻辑。我找到一个调用“b32”处理函数的地方,仔细看看输入和输出。

  • 输入好像是一段普通的字符串,或者有时候是二进制数据。
  • b32怎么用才对?新手看这里快速上手教程!

  • 输出,是一串看起来有点规律的大写字母和数字(好像没看到字母 O 和 I,数字 0 和 1 也没有,记不清)。长度明显比输入长一些。

看到这个输出的特点,我心里大概有点谱。这玩意儿特别像传说中的 Base32 编码。以前只是听说过,没正经用过。Base64 倒是常用,这个 Base32 确实碰得少。

验证想法

为验证我的想法,我做几个小动作:

    b32怎么用才对?新手看这里快速上手教程!

  1. 找个在线的 Base32 编码解码工具。
  2. 把我从代码里抠出来的输入样本,丢到在线工具里进行 Base32 编码。
  3. 把在线工具生成的编码结果,跟我代码里实际产生的那个“b32”处理后的输出结果进行比对。

一对,八九不离十,基本一样!这下心里踏实,总算知道这个“b32”大概是个啥。

搞定收工

b32怎么用才对?新手看这里快速上手教程!

知道它是 Base32,后面的事情就好办。虽然项目里具体的实现可能有点小细节不一样(比如用的字符集或者填充方式),但大方向是没错。我根据这个理解,回头去看代码,果然顺畅多。之前看不懂的逻辑,现在也能猜个大概。后面需要修改或者调试的时候,心里就有底。

这事儿也算给我提个醒,写代码或者做设计的时候,命名和注释真的很重要。不然就像这样,后面接手的人光猜你这“b32”是啥就得费半天劲。还好这回碰到的不算特别复杂,要是再难点儿,估计得折腾更久。

这回捣鼓“b32”的过程,也算是一次小小的探险,虽然过程有点懵,但搞明白还是挺有成就感的。记录一下,分享给大家,也给自己做个备忘。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,24人围观)

还没有评论,来说两句吧...