爬虫逆向加密入门之MD5、URLEncode和Base64
爬虫逆向加密入门之MD5、URLEncode和Base64
小编为你介绍爬虫逆向加密入门之MD5、URLEncode和Base64的IT小经验,一定能解决您的问题的,一起来了解吧!
在我们进行js逆向的时候,总会遇见一些我们人类无法直接能理解的东西出现,此时你看到的大多数是被加密过的密文。
一、一切从MD5开始
MD5是一个非常常见的摘要(hash)算法。其特点就是小巧、速度快、极难被破解。
所以,md5依然是国内非常多的互联网公司选择的密码摘要算法.。有如下特点:
- 这玩意不可逆. 所以. 摘要算法就不是一个加密逻辑.
- 相同的内容计算出来的摘要应该是一样的
- 不同的内容(哪怕是一丢丢丢丢丢不一样) 计算出来的结果差别非常大
在数学上. 摘要其实计算逻辑就是hash.
hash(数据) => 数字
- 密码
- 一致性检测
md5的python实现:
from hashlib import md5
obj = md5()
obj.update("felix".encode("utf-8"))
# obj.update("nisir".encode('utf-8')) # 可以添加多个被加密的内容
bs = obj.hexdigest()
print(bs)

我们把密文丢到网页里. 发现有些网站可以直接解密. 但其实不然. 这里并不是直接解密MD5. 而是”撞库”.
就是它网站里存储了大量的MD5的值. 就像这样:

而需要进行查询的时候. 只需要一条select语句就可以查询到了. 这就是传说中的撞库.
如何避免撞库: md5在进行计算的时候可以加盐. 加盐之后. 就很难撞库了.
from hashlib import md5
salt = "我是盐.把我加进去就没人能破解了"
obj = md5(salt.encode("utf-8")) # 加盐
obj.update("felix".encode("utf-8"))
bs = obj.hexdigest()
print(bs)

扩展; sha256
from hashlib import sha1, sha256
sha = sha256(b'salt')
sha.update(b'felix')
print(sha.hexdigest())
不论是sha1, sha256, md5都属于摘要算法. 都是在计算hash值. 只是散列的程度不同而已. 这种算法有一个特性. 他们是散列. 不是加密. 而且, 由于hash算法是不可逆的, 所以不存在解密的逻辑.
二、URLEncode和Base64
在我们访问一个url的时候总能看到这样的一种url
https://www.sogou.com/web?query=%E5%90%83%E9%A5%AD%E7%9D%A1%E8%A7%89%E6%89%93%E8%B1%86%E8%B1%86&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=3119&sst0=1630994614300&lkt=0%2C0%2C0&sugsuv=1606978591882752&sugtime=1630994614300
相关阅读
-
网站还原错误是怎么回事 网站还原错误解决方法
为网友解答网站还原错误是怎么回事和网站还原错误解决方法IT技巧方面的经验,一起跟随小编看看吧! 大家在网上冲浪的时候是不是都遇到过这个页面,404 Not Found到底是什么意思。 网页错误
-
什么是中间人攻击 怎样防止这种攻击
本文核心导读:什么是中间人攻击方面的知识,下面小编为您详细解答 自从互联网诞生以来,网络攻击的方式就层出不穷,而且很多早期的攻击技巧已经沿用至今。 中间人攻击(Man in the Mid
-
游戏平台有哪些 十个在线玩游戏的网站推荐
您可能不了解十个在线玩游戏的网站推荐和游戏平台有哪些的相关内容,请看下面详细的介绍。 分享十个非常有意思的在线游戏小网站,无需下载,随便打开哪个都能玩上一整天! 1、3D游戏网
-
个人网站制作步骤 网页设计与制作教程
小编为你解答个人网站制作步骤和网页设计与制作教程方面的知识,一起来看看吧! 随着各种网页制作工具的普及,现在不懂技术的个人也能顺利建站了。不过使用网页制作工具虽然简单,但


