当前位置: 首页 > news >正文

buuctf-鸡藕椒盐味,[NPUCTF2020]EzRSA,[WUSTCTF2020]大数计算

1.鸡藕椒盐味

题目“鸡藕椒盐味”不就是谐音“奇偶校验位”,本题给了验证码110010100000共12位,但是是个错误的验证码,这时我们需要了解海明码校验----

(不了解的可以去看看海明码原理与应用详解-CSDN博客,讲的很好)

题目给了一个提示:每个汉堡8块,也就是说, 数据位为8,校验位为4,而这四位校验码位置一定是在2^n上,即1,2,4,8。题目是说验证码倒了,我们再倒回去是0000 0101 0011,我们想要更清晰的分析就去列个表格


第一个检验位r1,它检验的位置为1,3,5,7,9,11(读一位隔一位)

第二个检验位r2,它检验的位置为2,3,6,7,10,11(读二位隔二位)

第三个检验位r4,它检验的位置为4,5,6,7,12(读四位隔四位)

第四个检验位r8,它检验的位置为8,9,10,11,12(读八位隔八位)

之后对校验位对应的数据进行异或运算(偶校验)

r1=0⊕1⊕1⊕0⊕1=1

r2=0⊕0⊕1⊕0⊕1=0

r3=1⊕0⊕1⊕1=1

r4=0⊕0⊕1⊕1=0

全0才表示无错,但是r1=1,发现了出错,当发生错误时,将r1r2r3r4的值转化为十进制即可知道发生错误的位置,1010即9,第九位出了问题。把0改成1后即0000 0101 1011,最后倒过来110110100000

最后一步就是求md5了,脚本如下

import hashlib
def calculate_md5(input_string):# 创建 MD5 哈希对象md5_hash = hashlib.md5()# 更新哈希对象(需要将字符串编码为字节)md5_hash.update(input_string.encode('utf-8'))# 获取十六进制哈希值return md5_hash.hexdigest()
if __name__ == "__main__":user_input = input("请输入要计算 MD5 的字符串: ")result = calculate_md5(user_input)print(f"MD5 哈希值: {result}")
#d14084c7ceca6359eaac6df3c234dd3b

flag{d14084c7ceca6359eaac6df3c234dd3b}

2.[NPUCTF2020]EzRSA

本题给了e很奇怪,54722,先不管我们先去分解n试试,我尝试了yafu工具和factordbd网站分解,后者成功了,得出p和q,直接求phi=(p-1)*(q-1)

那么该有的数据都有了,剩下求个私钥之后不直接可以求m了吗

不不不,我们要验证gcd(e,phi)是否等于1,不然求不出逆元啊

import gmpy2
p=106021448991021391444550749375115277080844281746248845802565680557785009341952320484175568763707424932172033597514861602114171459176440279045761846695231788376075050452154924141266290931413542110639081792550648106240966552406813059396358355737185354885474455248579946190266152416149137616855791805617206153497
e = 54722
q=161136651053130509602530659420755324119806487925813087617466818245407407797561810253722204813002837916779909309520498985459703212021249251124954613236122142746302911323565396331355397916764254680629384957057354297855676493062493901977415968666512459829211010720514167083018352796496733697235524845188512914793
phi =(p-1)*(q-1)
x = gmpy2.gcd(phi,e)
print(x)
#x=2

居然不等于1,那就不可以直接带入了,这种情况就属于e,phi不互素了

原理和解题脚本大家去参考(RSA-e和phi不互素-CSDN博客)

脚本直接把p,q,e,c换一下即可.

我直接使用轩禹RSA工具一把梭了

flag{diff1cult_rsa_1s_e@sy}

3.[WUSTCTF2020]大数计算

这个题目纯就是靠写计算代码了

flag等于 wctf2020{Part1-Part2-Part3-Part4} 每一Part都为数的十六进制形式(不需要0x),并用 '-' 连接
Part1 = 2020*2019*2018* ... *3*2*1 的前8位
Part2 = 520^1314 + 2333^666 的前8位
Part3 = 宇宙终极问题的答案 x,y,z绝对值和的前8位
Part4 = 见图片附件,计算结果乘上1314

对part1有;

import math# 初始化结果为1(因为阶乘从1开始乘)
result = 1
for i in range(1, 2021):result *= i# 当数字太大时,只保留前15位数字if result > 10 ** 15:result = int(str(result)[:15])first_8_digits = str(result)[:8]
print("2020!的前8位数字是:", first_8_digits)
#38609695

对part2有:

part2 = 520**1314 + 2333**666
print("part2 =",str(part2)[:8])
# part2 = 67358675

对part3有:

参考Hackergame 2019——宇宙终极问题 42-CSDN博客

x = 80538738812075974
y = 80435758145817515
z = 12602123297335631
part3 = x + y + z
print("part3 =",str(part3)[:8])
# part3 = 17357662

对part4有;

直接算了(2*22+36)*1314 = 683280

最后求flag

#转十六进制不要前面的0x
part1 = hex(38609695)[2:]
part2 = hex(67358675)[2:]
part3 = hex(17357662)[2:]
part4 = hex(683280)[2:]
print("wctf2020{"+part1+"-"+part2+"-"+part3+"-"+part4+"}")
# wctf2020{24d231f-403cfd3-108db5e-a6d10}

flag{24d231f-403cfd3-108db5e-a6d10}


文章转载自:

http://rDtFoJLP.wqbrg.cn
http://NDWkjOGW.wqbrg.cn
http://6TJ2FkNP.wqbrg.cn
http://Z0N0LJgd.wqbrg.cn
http://0Zq5E9Qm.wqbrg.cn
http://3bLEMTmw.wqbrg.cn
http://uJYiYIKa.wqbrg.cn
http://8GwCXRAh.wqbrg.cn
http://Ujttd0ju.wqbrg.cn
http://G2tattzd.wqbrg.cn
http://fquxT1kI.wqbrg.cn
http://cZRLypjk.wqbrg.cn
http://YcFmxnZO.wqbrg.cn
http://meBlgLO0.wqbrg.cn
http://RTNUTldz.wqbrg.cn
http://j29lCJ6N.wqbrg.cn
http://haanAWYB.wqbrg.cn
http://gheY8baH.wqbrg.cn
http://EkpVb9fN.wqbrg.cn
http://LQHB2jVF.wqbrg.cn
http://59YrVtxg.wqbrg.cn
http://E33zrPuf.wqbrg.cn
http://DY4iEN1b.wqbrg.cn
http://sW6WbFeq.wqbrg.cn
http://Tw5dpBz0.wqbrg.cn
http://U4aWhkr7.wqbrg.cn
http://wZR2auvq.wqbrg.cn
http://CkceOcBt.wqbrg.cn
http://XhU128ck.wqbrg.cn
http://xPJKmjkU.wqbrg.cn
http://www.dtcms.com/a/370861.html

相关文章:

  • OpsManage 项目启动脚本与 Docker 配置深度分析
  • 智能制造——解读97页汽配行业ERP整体解决方案【附全文阅读】
  • LIO-SAM 算法从入门到部署实践
  • ES6 核心特性详解:从变量声明到函数参数优化
  • 云手机在企业办公中的作用
  • 2025高教社国赛数学建模C题参考论文(含模型和代码)
  • RPC 和 HTTP 的区别
  • 通过Idea 阿里插件快速部署java jar包
  • 在Ubuntu 22.04系统中无需重启设置静态IP地址
  • 数据结构中排序的时间、空间复杂度以及稳定性
  • 面试开发工程师需要做哪些准备
  • hot100-贪心算法(附图解思路)
  • 京东商品属性API数据解析:颜色、尺寸与材质
  • 附051.Kubernetes Karmada kubectl 插件部署联邦及使用
  • 从 Excel 趋势线到机器学习:拆解 AI 背后的核心框架​
  • 嵌入式学习笔记--Linux系统编程阶段--DAY06进程间通信-消息队列
  • 【Beetle RP2350】摇杆控制自定义角度旋转舵机
  • 波特率vs比特率
  • C++ 14新增特性以及代码示例
  • SDRAM详细分析-08 数据手册解读
  • 51单片机---硬件学习(电子琴、主从应答模式、modbus模型、DS18B20传感器显示温度)
  • Blender 3D建模工具学习笔记
  • k8s网络原理
  • 新后端漏洞(上)- Weblogic SSRF漏洞
  • LockSupport详解以及使用
  • 【73页PPT】智慧方案业务协同管理平台解决方案(附下载方式)
  • Qt的入门
  • v0.29.1 敏感词性能优化之内部类+迭代器内部类
  • 【C++ 启发式搜索算法】
  • 个人成长职业发展