哈希(md5)绕过

MD5

形式#

MD5一共128位,内容由0-9之间的数字和a-f之间的小写字母组成

右边是一个MD5:d41d8cd98f00b204e9800998ecf8427e,共32个字符(一个字符4位)

绕过#

0e绕过#

原理:0e开头的字符串在参与比较时,会被当做科学计数法,结果转换为0

#生成0e开头+后面全是数字的md5编码的字符串的python脚本:
import hashlib
import itertools

def find_md5_with_0e_prefix():
    chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    length = 1
    num = 0

    while True:
        for combination in itertools.product(chars, repeat=length):
            test_string = "".join(combination)
            hash_value = hashlib.md5(test_string.encode()).hexdigest()
            if hash_value[:2] == "0e" and hash_value[2:].isdigit():
                print("输入字符串:", test_string)
                print("MD5加密结果:", hashlib.md5(test_string.encode()).hexdigest())
                num += 1
                if(num == 2):
                    return
        length += 1

find_md5_with_0e_prefix()
aaroZmOk
aaK1STfY
aaO8zKZF
QNKCDZO
240610708
byGcY
sonZ7y
aabg7XSs
aabC9RqS
s878926199a
s155964671a
s214587387a
s1091221200a

数组绕过#

原理:md5不能加密数组,传入数组会报错,但会继续执行并且返回结果为null

例子:md5(a[]=1) === md5(b[]=2)

<?php
$a = array(0=>"hello");
$b = array(1=>"word");
print_r($a);
print_r($b);
var_dump(md5($a) === var_dump(md5($b))) //bool(true)
?>

作者:NTrack

出处:https://www.cnblogs.com/ntrack/p/17538467.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   ntrack  阅读(214)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示