Python 如何求一个数的最大可能奇数因子
我正在写一个破解小RSA密钥的脚本。我已经想到了一种方法,可以在我使用的方法中节省大量的时间。要做到这一点,我需要知道如何找到一个数的最大可能素数因子,具有一定的大小。例如:Python 如何求一个数的最大可能奇数因子,python,algorithm,cryptography,primes,factors,Python,Algorithm,Cryptography,Primes,Factors,我正在写一个破解小RSA密钥的脚本。我已经想到了一种方法,可以在我使用的方法中节省大量的时间。要做到这一点,我需要知道如何找到一个数的最大可能素数因子,具有一定的大小。例如: N = 9868690954602957859 N_MAX_FACTOR_BITSIZE = 64 然后,我通过这个算法运行N: p=楼面面积qrtn 如果p mod 2==0: p+=1 而p
N = 9868690954602957859
N_MAX_FACTOR_BITSIZE = 64
然后,我通过这个算法运行N:
p=楼面面积qrtn
如果p mod 2==0:
p+=1
而p如果有任何帮助,我们将不胜感激。请您重新表述您的问题,使其更加明确,您想要实现什么,您已经实现了什么,还有什么不起作用?否则它看起来像是为我做这个问题,最多有一个N的素因子大于sqrtN。但可能并没有。RSA密钥和数字属性无关。如果n可以被i和j整除,i和j甚至相对素数,那么i*j也必须除以n。如果两个除数都大于sqrtn,则它们的乘积大于n。你的前提立即导致了矛盾。对于随机整数,找到最大素因子的最简单方法是先找到最小的素因子。除去所有最小的因素后,剩下的就只有最大的因素了。然而,RSA模被选择为大小大致相同的两个素数的乘积。对于这些模,寻找最小和最大模的努力大致相同。最简单的方法可能是调用。它将为您完成这项工作,并且还支持大整数。另请参见。此算法可能需要进行一些调整。将进行尝试。此算法返回小于n的所有素数因子的列表。我需要一个算法,它能返回所有小于n的素数,并且其位大小为s,或者例如64位。@Legoroj看看这个算法,它会帮你的
def prime_factors(n):
"""Returns all the prime factors of a positive integer"""
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n /= d
d = d + 1
return factors
n = 9868690954602957859
primes =prime_factors(n)[-1]
print(primes)