【Crypto | CTF】BUUCTF Alice与Bob1

本文介绍了如何用Python编写一个函数prime_factors,用于分解给定整数的质因数,然后通过示例展示了如何将结果应用在MD5加密中,获取特定的flag。
摘要由CSDN通过智能技术生成

天命:比较简单的题目

先用Python生成一个脚本,分解两个素数

def prime_factors(n):
    """
    分解给定整数n的质因数。
    返回一个列表,其中包含n的所有质因数。
    """
    # 初始化一个空列表来存储质因数
    factors = []

    # 从2开始,逐个检查每个数是否是n的因数
    for i in range(2, int(n ** 0.5) + 1):
        # 如果i是n的因数,将其添加到质因数列表中
        if n % i == 0:
            factors.append(i)
            # 如果i不是质数,则n/i也是一个因数,将其也添加到质因数列表中
            if i != n // i:
                factors.append(n // i)

                # 如果n是偶数且大于2,则它本身不是质数,需要特别处理
    if n > 2 and n % 2 == 0:
        factors.append(2)

    return factors


# 测试函数
print(prime_factors(98554799767))  # 输出: [101999, 966233]

最后得到101999966233,再使用MD5加密即可得到 flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星盾网安

能花钱买到的知识,都不贵

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值