Sticky RC4

    This site uses cookies. By continuing to browse this site, you are agreeing to our use of cookies. More details


    • Hier die leicht einzuprägende Stromchiffre RC4 in Python3 gepackt.
      Die Chiffre wird mittlerweile aufs Abstellgleis gestellt und sollte NICHT mehr verwendet werden ! (Weitere Infos im verlinkten Wiki-Eintrag).





      Python Source Code

      1. # -*- coding: utf-8 -*-
      2. def rc4crypt(data, key):
      3. x = 0
      4. box = list(range(256)) # Python3 fix...
      5. for i in range(256):
      6. x = (x + box[i] + ord(key[i % len(key)])) % 256
      7. box[i], box[x] = box[x], box[i]
      8. x = 0
      9. y = 0
      10. out = []
      11. for char in data:
      12. x = (x + 1) % 256
      13. y = (y + box[x]) % 256
      14. box[x], box[y] = box[y], box[x]
      15. out.append(chr(ord(char) ^ box[(box[x] + box[y]) % 256]))
      16. return ''.join(out)
      17. def main():
      18. print("\t\t..:: __RC4__ ::..\n\n")
      19. testEncrypt = rc4crypt("Test", "PaSsW0rD")
      20. testDecrypt = rc4crypt(testEncrypt, "PaSsW0rD")
      21. testFail = rc4crypt(testEncrypt, "PaSsWOrD") # testen, ob Entschlüsselung falsch...
      22. print(" RC4(\"Test\", \"PaSsW0rD\") = %s" % testEncrypt)
      23. print(" RC4(\" + testEncrypt + \", \"PaSsW0rD\") = %s" % testDecrypt)
      24. print("[!] RC4(\" + testEncrypt + \", \"PaSsWOrD\") = %s" % testFail)
      25. print("Bye...")
      26. return
      27. if __name__ == '__main__':
      28. main()
      Display All


      ..:: Beispielausgabe ::..