синтаксическая ошибка при реализации алгоритма RC4 - PullRequest
1 голос
/ 29 октября 2019

Я пытаюсь изменить алгоритм реализации RC4 в python, который я нашел в сети, и я получаю синтаксическую ошибку при использовании цикла 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')

1 Ответ

0 голосов
/ 29 октября 2019

Строка

    K = S[(S[i] + S[j]) % 256

имеет несбалансированную скобку… ничего не поделать с , использующей цикл if вместо цикла while .

я пробовалдобавление этой скобки в конце, и это дает мне ошибку индекса: индекс списка выходит за пределы диапазона

В опубликованном коде отсутствует алгоритм планирования ключей (KSA) , который используется для инициализации перестановки в массиве "S".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...