BUGKU/Crypto-easy_hash

老样子,下载,解压,打开文件夹

提示都赤裸裸的提出哈希了,不试一下MD5那岂不是不太尊重作者

善良的作者还给了个脚本

说错了,这货给的是MD5加密脚本,,,,

既然人家写了脚本,那咱也写一个玩玩吧

import hashlib  
  
# 假设原始数据仅包含ASCII可打印字符  
charset = ''.join(map(chr, range(32, 127)))  # ASCII可打印字符集  
  
def compute_md5(char):  
    md5_hash = hashlib.md5(char.encode()).hexdigest()  
    return md5_hash  
  
def decode_md5(md5_hash):  
    for char in charset:  
        if compute_md5(char) == md5_hash:  
            return char  
    return None  # 如果没有找到匹配的字符,返回None  
  
if __name__ == '__main__':  
    md5_hashes = []  
    # 读取output文件中的MD5哈希值  
    with open('output', 'r') as file:  
        for line in file:  
            md5_hashes.append(line.strip())  
      
    decoded_chars = []  
    # 尝试解码每个MD5哈希值  
    for md5_hash in md5_hashes:  
        char = decode_md5(md5_hash)  
        if char is not None:  
            decoded_chars.append(char)  
        else:  
            decoded_chars.append('?')  # 如果解码失败,用'?'代替  
      
    # 输出解码后的字符  
    print(''.join(decoded_chars))

注意,因为MD5是单向编码,所以无法反向解码,只能在限定字符内进行解码,所以以上脚本只能在限定范围内字符进行,不过幸好这次是成功的

 

提交答案

flag{We1c0me_t0_the_w0r1d_0f_md5}

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值