维吉尼亚密码破解指南
1. 计算间距的因数
在维吉尼亚密码破解的过程中,计算间距的因数是关键步骤之一。为了找出合适的因数,我们编写了 getUsefulFactors() 函数,该函数接受一个参数 num ,并返回一个仅包含满足条件(因数长度在 2 到 MAX_KEY_LENGTH 之间)的因数列表。
def getUsefulFactors(num):
if num < 2:
return [] # 小于 2 的数没有有用的因数。
factors = [] # 存储找到的因数列表。
for i in range(2, MAX_KEY_LENGTH + 1): # 不测试 1,因为它没有用。
if num % i == 0:
factors.append(i)
otherFactor = int(num / i)
if otherFactor < MAX_KEY_LENGTH + 1 and otherFactor != 1:
factors.append(otherFactor)
return list(set(factors)) # 去除重复的因数。
此函数的工作流程如下:
1. 首先检查 num 是否小于 2,如果是,则返回空列表,因为小于 2 的数没有符合要求的因数。
2. 若
超级会员免费看
订阅专栏 解锁全文
43

被折叠的 条评论
为什么被折叠?



