CRYPTO-factor

n=240546297453496858231088405356129350257,你能把这个整数分解成两个素数的积吗?=> n = p * q
flag:NSSCTF{md5(min(p,q)+max(p,q))}

文件打开之后是一串特别长的数,题目要求就是将其拆分为两个素数乘积。

我最初想法是用python,先确保两个数是素数然后两数相乘得到密码中的那个长数,但是尝试了之后发现数字过长,即使让变量类型定义为long 型也无法拆分。

之后便是卡了很久,随后我换了个思路—能不能使用线上工具直接拆分素数?我开始寻找工具,然后发现一个factordb.com的网站可以支持。

拆分之后得到了两个素数

又因为flag:NSSCTF{md5(min(p,q)+max(p,q))},题目要求使用MD5解码出两个素数的和,计算器得出两个素数的和为31207540994438423298

解码

然后按照题目格式要求加上NSSCTF{}即可

这道crypto的解题关键我认为在于拆分素数,这一步没有想出来就会直接卡死。关键在于工具的选取和编程数字拆分长度不能超过24的隐含条件。

发表评论

蜀ICP备2022010829号