2016-03-27 5 views
1

Ich habe Python Erfahrung begrenzt, obwohl aufgefordert worden, es zu verwenden, um den RC4-Algorithmus zu implementieren. Ich habe den folgenden Code, aber richtig scheintPython RC4-Implementierungsfehler 'Bereich' Objekt unterstützt keine Item-Zuweisung

'range' object does not support item assignment 

für die Zeile den Fehler erzeugt:

S[i], S[j] = S[j], S[i] # swap 

Hier ist mein Code:

def KSA(key): 
    keylength = len(key) 

    S = range(256) 

    j = 0 
    for i in S: 
     j = (j + S[i] + key[i % keylength]) % 256 
     S[i], S[j] = S[j], S[i] # swap 

    return S 
+0

Beachten Sie, dass [RC4 ist nicht sicher] (https://en.wikipedia.org/wiki/RC4#Security). Alternativen ohne bekannte Schwächen sind [Salsa20] (https://cr.yp.to/salsa20.html) und [die eSTREAM-Empfehlungen] (https://en.wikipedia.org/wiki/ESTREAM). – twotwotwo

Antwort

1

In Python 3 range Anweisung einen Generator zurückgibt Objekt, keine Liste. Ändern Sie Ihre Initialisierung Linie von

S = range(256) 

zu

S = list(range(256)) 
Verwandte Themen