首页 > 编程语言 >【web_逆向04】MD5摘要算法

【web_逆向04】MD5摘要算法

时间:2023-08-13 21:56:31浏览次数:52  
标签:web obj 字节 04 update print love MD5 md5

MD5是一个非常常见的摘要(hash)算法,其特点就是小巧. 速度快. 极难被破解。所以, md5依然是国内非常多的互联网公司选择的密码摘要算法

    1. 这玩意不可逆. 所以. 摘要算法就不是一个加密逻辑.
    1. 相同的内容计算出来的摘要应该是一样的
    1. 不同的内容(哪怕是一丢丢丢丢丢不一样)
# python的内置模块hashlib中提供了md5计算
from hashlib import md5, sha1, sha512

ming = "i love you"
# md5() 创建出来的对象是一次性的...
obj = md5()
#
# 传递进去的必须是字节
obj.update(ming.encode("utf-8"))
# 查看结果
ret = obj.hexdigest()
print(ret)   # 459b9511a7f650ebd327889c45cc4e9b

# 注意点===》》》md5()对象是一次性的,如果继续update,相当于叠加字符串了
# 接着上次的update继续update
obj.update(ming.encode("utf-8"))  # "i love youi love you"
print(obj.hexdigest())  # b0ce1e6afaf0ee351d8698ea41a1655e


obj2 = md5()
obj2.update("i love youi love you".encode("utf-8"))
print(obj2.hexdigest())   # b0ce1e6afaf0ee351d8698ea41a1655e

小功能,md5加密后是32位字符,也可以是字节

obj = md5()
ret = obj.update("i love you".encode("utf-8"))
print(obj.hexdigest())   # 十六进制的数字   459b9511a7f650ebd327889c45cc4e9b
print("=>", obj.digest())  # 字节   => b"E\x9b\x95\x11\xa7\xf6P\xeb\xd3'\x88\x9cE\xccN\x9b"
#
# # md5的值固定是32位字符串
print(len("459b9511a7f650ebd327889c45cc4e9b"))
#
# 十六进制.  0-9a-f
# 459b9511a7f650ebd327889c45cc4e9b
# 多少个字节.
# 字节
# 1个字节 => 8个01 => 1111 1111  => 255 => 2位十六进制 FF
# md5是32位16进制 => 16个字节.
#
s = "459b9511a7f650ebd327889c45cc4e9b"
import binascii  # 内置模块. 专们用来处理.字节和数字之间的关系
bs = binascii.a2b_hex(s)  # 把十六进制字符串转化成字节
print(bs)   # b"E\x9b\x95\x11\xa7\xf6P\xeb\xd3'\x88\x9cE\xccN\x9b"

撞库与加盐

  • 上面我们一直在说,md5加密是不可逆的;
  • 但是我在网页上找到md5解密网站,有时候是可以被"解密"出来的;
  • 但其实不然. 这里并不是直接解密MD5. 而是"撞库". 就是它网站里存储了大量的MD5的值. 然后去匹配;
  • 如何避免撞库: md5在进行计算的时候可以加盐. 加盐之后. 就很难撞库了.
from hashlib import md5

salt = "我是盐.把我加进去就没人能破解了"
obj = md5(salt.encode("utf-8"))  # 加盐
obj.update("xwl".encode("utf-8"))

bs = obj.hexdigest()
print(bs)

碰到md5加密怎么办?

  • 首先判断是否为标准的md5加密
    • 只要某算法的123456 计算的结果是 e10adc. 就是标准的md5

标签:web,obj,字节,04,update,print,love,MD5,md5
From: https://www.cnblogs.com/xwltest/p/17627350.html

相关文章

  • Spring Web : FormHttpMessageConverter
    概述FormHttpMessageConverter是SpringWeb提供的用于读写一般HTML表单数据的HttpMessageConverter实现类,也可以写multipart数据,但是不能读取multipart数据。具体来讲,FormHttpMessageConverter可以:读写application/x-www-form-urlencoded媒体类型数据:MultiValueMapMultiValueM......
  • 704. 二分查找
    参考链接:https://programmercarl.com/0704.二分查找.html#思路给定一个n个元素有序的(升序)整型数组nums和一个目标target,写一个函数搜索nums中的target,如果目标值存在,就返回下标,否则返回-1。tips:假设nums所有元素不重复n在[1,10000]之间nums的每个元素都将在[-9999,9999]之......
  • 【愚公系列】2023年08月 攻防世界-Web(ics-02)
    (文章目录)前言SSRF(服务器端请求伪造)是一种攻击技术,攻击者通过构造恶意请求,欺骗服务器发起外部请求,获取服务器本应该不被直接访问的信息或服务。攻击者可利用SSRF进行一系列攻击,包括对内部资源进行扫描、窃取敏感信息、攻击内部系统等。SQL注入是一种常见的Web攻击技术,攻......
  • 【web_逆向02】某易云逆向注意点
    加密入口需要用到a,b,c三个函数a,不需要动,直接copy就行b,标准的第三方库,直接安装即可:npminstallcrypto-js千万不要去抠CryptoJS,希望各位记住这个格式.js的标准第三方库https://www.npmjs.com/c,有点麻烦,库太老了--npm找不到functionc(a,b,c){var......
  • 【web_逆向01】环境安装
    node.js环境安装官网下载,直接下一步就行安装后,在cmd环境,测试pycharm运行js代码安装node.js插件,安装后记得重启pycharm即可python调用js代码运行,pyexecjs模块pipinstallpyexecjs使用importexecjs#请注意,安装的是pyexecjs.使用的是execjs##1.直接执......
  • Burp Suite Professional / Community 2023.9 (macOS, Linux, Windows) - Web 应用安
    BurpSuiteProfessional/Community2023.9(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023/,查看最新版。原创作品,转载请保留出处。作者......
  • Web通用漏洞--RCE
    Web通用漏洞--RCE漏洞简介RCE远程代码/命令执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。RCE漏洞也分为代码执行漏洞和命令执行漏洞,所谓代码执行即通过漏洞点注入参数而使用源代码进行相应的操作,所谓的命令执行就是通过漏洞点注入参数......
  • Web攻防--xxe实体注入
    web攻防--xxe实体注入漏洞简介XML外部实体注入(也称为XXE)是一种Web安全漏洞,允许攻击者干扰应用程序对XML数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。在某些情况下,攻击者可以利用XXE漏洞联......
  • ctfshow--web入门--XXE
    ctfshow--web入门--XXEweb373源码<?phperror_reporting(0);libxml_disable_entity_loader(false); //允许加载外部实体$xmlfile=file_get_contents('php://input'); //使用php伪协议进行接收值,并进行文件读取if(isset($xmlfile)){$dom=newDOMDocument();......
  • Web通用漏洞--文件上传
    Web通用漏洞--文件上传概述文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数......