网站客服:zx81024163 |

Python篇:测试小白也能懂的常用加密算法解析

2023-04-23 19:15:19发布    浏览445次    信息编号:47664

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

Python篇:测试小白也能懂的常用加密算法解析

在测试过程中,我们经常遇到接口数据加密、数据库密码加密如何测试等问题。 不少学生顿时被吓跑了。

其实只要有耐心,测试过程中常用的加密算法并没有那么难,有的甚至根本就不是加密算法。

密码学是一门相对晦涩的科学。 电影《模仿游戏》讲述了包括图灵在内的几位顶尖数学家破译德国军事情报的故事。 但是在工作中,我们不需要了解密码学的底层原理,只需要知道它们是如何使用的即可。

本文将通过列出测试和开发过程中最常用的算法来揭开所谓“加密”过程的神秘面纱。

算法 1:

这不是加密算法,它被称为编码算法。 就像我们在计算机中将文本编码成二进制数据一样。

更通俗地说。 只要观察一下I am a这个词是英文的,通过翻译软件就可以知道他的原意是“I am a ”。

让我们看看这个字符串:==

如果你是新手,你可能不知道这意味着什么。 看完这篇文章,你就会明白他的意思:我喜欢你

就像我们把中文翻译成英文一样,这种编码算法只是把你能看懂的词翻译成肉眼看不懂的词,但是一旦你知道这些看不懂的符号是哪种语言,就可以直接翻译回来。

比如上一段中的==就是我喜欢你编码得到的词。

“破解”也很简单,只需要在网上搜索在线编解码工具即可。 如果你想使用代码,像这样:

算法 2:

URL编码和URL编码一样,只是一种编码算法,不能称为加密。 请记住,只要通过观察所看到的字符串的特征来分析编码方法,就可以轻松解码编码方法。

具体含义肉眼是看不出来的,所以这也是小人所谓的“加密方式”。

比如:url编码的特点就是末尾经常有一个=号,url编码的特点就是有很多%。

我们经常在浏览器中看到这样的地址:

%E8%8F%9C%E9%B8%9F

后半部分有很多百分号的部分是url编码。 也可以直接搜索对应工具解码得到原始数据:

菜鸟

对应的代码是这样的:

算法 3:md5

md5 不是编码或加密。 简称摘要算法,又称散列算法、散列算法。 他的主要职能是:

防止篡改

检查数据

比如你下载了一个软件,你会担心这个软件被修改,被植入病毒。 为防止自己的软件被他人修改,软件开发商会在官网附上一份概要信息。 例如,这个 URL 是软件每个版本的摘要。

下载软件后,使用摘要算法检测工具检测被修改的软件并计算其摘要信息。 如果与官方信息一致,则表示软件没有被修改; 如果不一致,说明软件被篡改了。

摘要算法的另一个应用场景是保存密码。 我们日常注册账号输入的密码,通常不会直接存入数据库,而是经过消化(或加密)后存入数据库。 你可以通过在线工具md5“加密”任意数据,这里是版本代码:

注意:摘要算法不可逆,无法通过hello yuz获取原始数据。 所以你无法通过存储在数据库中的密码知道你的真实密码。

为什么密码会被盗?

密码被盗通常是因为黑客利用摘要算法的另一个特性来攻击数据库,这被称为凭据填充。

对于单一的摘要算法,有一个特点:只要你的原始数据是固定的,得到的哈希值也会是一样的。 例如,hello yuz 明白了。

黑客利用这种对应关系,将经常使用的密码和对应的哈希值做成关系表(彩虹表),然后一一尝试。

例如,很多人喜欢生成密码为 8888gsm手机有哪些常用的加密算法?,. 黑客只需要将这些密码预先计算出的对应哈希值保存下来,就可以尝试破解你的账户。

什么是盐?

上面的例子提到黑客可以使用彩虹表来提取你的密码,所以纯摘要算法并不是一种特别安全的密码存储方式。 但是我们可以通过“加盐”来提高安全性。

网站开发者会提供一个类似于秘钥的东西,我们称之为salt,其实就是一个随机字符串。 然后用原密码+salt得到一个新的字符串,再进行hash。

只要盐不被黑客知道,就没有办法使用彩虹表来攻击数据库。 这是代码的加盐版本:

测试时,如果公司的密码是通过摘要算法生成的,可以向开发者索盐gsm手机有哪些常用的加密算法?,然后通过相应的摘要算法验证数据库密码。

算法 4:SHA1

SHA1和md5一样,也是一种摘要算法,而且,。 我们看到的区别是长度。 长度越长,理论上越安全,但也意味着速度越慢。

下面是sha1的代码,和md5差不多:

总结

我们在本文中提到的“加密”算法都是伪加密,只有盐(salt)类似于密码;

真正的加密算法也有很多,下节会详细补充。

编码常用于传输URL、网页中的少量二进制数据;

优点:速度快,肉眼看不懂

缺点:代码比较长,非常容易被破解,只适合加密非敏感信息

URL编码常用于对URL数据进行编码和解析;

md5是最经典、应用最广泛的摘要算法。

有些公司会用md5来保存密码

也有一些公司会使用其他更适合消化密码的算法。

sha1, , 比md5安全,但是速度较慢,而且在存储数据的时候会消耗更多的资源。

提醒:请联系我时一定说明是从星空网上看到的!