浙密杯 SM3杂凑值寻找字符串

题目

某字符串的sm3的Hash值为

87ac62f09589286c893b27e7ea8742dfa399954d875e399e70118b4535c29dab

该字符串长度为13位,已知前面9个字符为"ZheMiBei-",后面四个字符均为小写字母。请找出该字符串。flag提交格式为flag{ZheMiBei-????}。

思路

第一步:编制4为小写字母的字典表由aaaa~zzzz,共计26^4=456976种可能;

第二步:拼接前缀字符串"ZheMiBei-",形成新字典表;

第三步:遍历字典表,每种可能做SM3-hash,与题目给出hash值对比。

              若杂凑值相同则输出字符串。

Python实现代码

代码如下:

import itertools
from gmssl import sm3  

letters = 'abcdefghijklmnopqrstuvwxyz'  # 生成字典表,并拼接前缀
dictionary = ['ZheMiBei-' + ''.join(combo) for combo in itertools.product(letters, repeat=4)]


# SM3哈希函数  
def sm3_hash(data:str):  
    data = [i for i in bytes(data.encode())]
    sm3_hash_value = sm3.sm3_hash(data)  
    return sm3_hash_value

for i in range(len(dictionary)):
    value = dictionary[i]               # 依次取字典表中的值
    hash_value = sm3_hash(value)        # 计算SM3杂凑值
    if hash_value =="87ac62f09589286c893b27e7ea8742dfa399954d875e399e70118b4535c29dab":
        print("字符串:" + value + "\n该字符串SM3杂凑值为:" + hash_value)
        break

运行结果

字符串:ZheMiBei-cryp

该字符串SM3杂凑值为:

87ac62f09589286c893b27e7ea8742dfa399954d875e399e70118b4535c29dab

 easy!

内容概要:本文档介绍了一个多目标规划模型,该模型旨在优化与水资源分配相关的多个目标。它包含四个目标函数:最小化F1(x),最大化F2(x),最小化F3(x)和最小化F4(x),分别对应于不同的资源或环境指标。每个目标函数都有具体的数值目标,如F1的目标值为1695亿立方米水,而F2则追求达到195.54亿立方米等。此外,模型还设定了若干约束条件,包括各区域内的水量限制以及确保某些变量不低于特定百分比的下限。特别地,为了保证模型的有效性和合理性,提出需要解决目标函数间数据尺度不一致的问题,并建议采用遗传算法或其他先进算法进行求解,以获得符合预期的决策变量Xi(i=1,2,...,14)的结果。 适合人群:对数学建模、运筹学、水资源管理等领域感兴趣的科研人员、高校师生及从业者。 使用场景及目标:①适用于研究涉及多目标优化问题的实际案例,尤其是水资源分配领域;②帮助读者理解如何构建和求解复杂的多目标规划问题,掌握处理不同尺度数据的方法;③为从事相关工作的专业人士提供理论参考和技术支持。 阅读建议:由于文档涉及到复杂的数学公式和专业术语,在阅读时应先熟悉基本概念,重点关注目标函数的具体定义及其背后的物理意义,同时注意理解各个约束条件的设计意图。对于提到的数据尺度不一致问题,建议深入探讨可能的解决方案,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值