def cmd_xor(k, i, o): """XOR cipher. Note: XOR is not a 'secure cipher'. If you need strong crypto you must use algorithms like AES. You can use habu.fernet for that. Example: \b $ habu.xor -k mysecretkey -i /bin/ls > xored $ habu.xor -k mysecretkey -i xored > uxored $ sha1sum /bin/ls uxored $ 6fcf930fcee1395a1c95f87dd38413e02deff4bb /bin/ls $ 6fcf930fcee1395a1c95f87dd38413e02deff4bb uxored """ o.write(xor(i.read(), k.encode()))
def test_xor(): text = b'text to encrypt' encrypted = xor(text) assert text == xor(encrypted)
def test_xor_w_key(): text = b'text to encrypt' key = b'secret' encrypted = xor(text, key) assert text == xor(encrypted, key)
def cmd_xor(k, i, o): """XOR cipher""" o.write(xor(i.read(), k.encode()))