我正在尝试在网上找到的python中修改RC4算法的实现,并且在使用if循环代替while循环时遇到语法错误,有人可以告诉我为什么吗?
def PRGA(S):
i = 0
j = 0
if i==0 & j==0: # here it was originally while True:, so I changed it to if statement
i = (i + 1) % 256
j = (j + S[i]) % 256
S[i], S[j] = S[j], S[i] # swap values
K = S[(S[i] + S[j]) % 256
print ('K') # and here it was yield K
else:
print ('error')
答案 0 :(得分:0)
行
K = S[(S[i] + S[j]) % 256
具有不平衡的括号……与使用if循环代替while循环无关。
我尝试在末尾添加该括号,这给了我索引错误:列表索引超出范围
发布的代码缺少Key-scheduling algorithm (KSA)部分,该部分用于初始化数组“ S”中的排列。