import os import signal from Crypto.Util.number import * flag = os.environb.get(b"FLAG", b"dummmmy{test_test_test}") def main(): p = getPrime(128) q = getPrime(128) n = p * q N = pow(p, 2) + pow(q, 2) print("Let's factoring !") print("N:", N) p = int(input("p: ")) q = int(input("q: ")) if isPrime(p) and isPrime(q) and n == p * q: print("yey!") print("Here you are") print(flag) else: print("omg") def timeout(signum, frame): print("Timed out...") signal.alarm(0) exit(0) if __name__ == "__main__": signal.signal(signal.SIGALRM, timeout) signal.alarm(30) main() signal.alarm(0)
时间: 2024-04-17 15:23:38 浏览: 145
Crypto.rar_CRYPTO_RIJNDAEL A_cryptohash.inc_md2_加密
很高兴能回答你的问题!这段代码看起是一个简单的因式分解程序。它生成两个128位的随机质数p和q,并计算出它们的乘积n和平方和N。然后,程序要求你输入p和q,并检查它们是否是质数并且乘积等于n。如果条件满足,它将打印出FLAG的值。如果条件不满足,则打印"omg"。此外,程序设置了一个30秒的超时时间,如果超过该时间,程序将打印"Timed out..."并退出。
需要注意的是,FLAG的值是从环境变量中获取的,如果环境变量中没有设置FLAG,则默认为"dummmmy{test_test_test}"。
阅读全文