在测试过程中,我们经常会遇到接口数据加密、数据库密码加密怎么测试等问题,很多同学立马被吓退了。
实际上,只要耐心一点,测试过程的常用加密算法不是那么难,甚至有的根本就不是加密算法。
密码学是一门相对比较晦涩的科学,电影《模仿游戏》就是讲的包括图灵在内的几个顶级数学家破译德军的军事情报的故事。 但是在工作当中,我们不需要懂密码学的底层原理,你只需要知道他们如何使用的就可以了。
本文会列举在测试和开发过程中最常用的算法,解开所谓“加密”过程的神秘面纱。
算法1: base64
这不是加密算法,它叫做编码算法。和我们把文字编码成计算机当中的二进制数据一样。
说得更通俗一点。只要你观察到 I am a programer 这几个字是英语,你就能通过翻译软件知道他的原始意思是 “我是一个程序员”。
我们来看一段字符串:
SSBsaWtlIHlvdQ==
如果你是一个萌新,你肯定不懂这是什么意思。看文这篇文章以后,你就会知道他的意思是:
I like you
就和我们把中文翻译成英文一样, base64 这样的编码算法只是把你看得懂的字翻译成肉眼看不懂的字,但是一旦你知道这些看不懂的符号是哪一门语言,你就可以直接翻译回去。
比如上一段 SSBsaWtlIHlvdQ== 就是用 base64 编码 I like you 得到的字。
要“破解”也非常简单,你只要在网上搜索 base64 在线编码、解码就有工具。如果要使用代码,类似于这样:
import base64
开发人员编码
byte_str = “I like you”.encode(‘utf-8’)<