Skip to content

A python3 RC4 implementation that doesn't suck. (i.e. it's actually binary-safe...)

License

Notifications You must be signed in to change notification settings

DavidBuchanan314/rc4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rc4

A python3 RC4 implementation that doesn't suck. (i.e. it's actually binary-safe...)

Literally every other implementation I could find relied on chr/ord to decode bytes, which would fail on any invalid unicode sequences.

Update: PyCrypto's implementation Isn't that bad, and you should probably use that instead, if you can. However, it places arbitrary restrictions on key size, which is a dealbreaker for some applications (i.e. legacy hardware/software backwards-compatibility).

This implementation uses bytes/bytearray objects to work with binary data, and has been tested against RFC6229.

Supports python 3.4+.

Example usage:

from rc4 import RC4

cipher = RC4(b"secret", streaming=False)
msg = b"Not very secret message"

ciphertext = cipher.crypt(msg)
print(ciphertext) #=> b'\xa3Y\xa6<\xf4\xc1\xa4\xdf\x12\xb8\xde\xbf\x81\x83\x81\x17\xc0R\x01\x91\xe2\x94\xa1'

plaintext = cipher.crypt(ciphertext)
print(plaintext) #=> b'Not very secret message'

assert(plaintext == msg)

About

A python3 RC4 implementation that doesn't suck. (i.e. it's actually binary-safe...)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages