#!/bin/python import sys, getopt, os def main(argv): try: opts, args = getopt.getopt(argv,"hc1:c2:c3:",["comp1=","comp2=","comp3="]) except getopt.GetoptError: print ('test.py -i -a
-p ') sys.exit(2) for opt, arg in opts: if opt == '-h': print ('test.py -i -a
-p ') sys.exit() elif opt in ("-c1","--comp1"): comp1 = str(arg) elif opt in ("-c2","--comp2"): comp2 = str(arg) elif opt in ("-c3","--comp3"): comp3 = str(arg) if len(comp1) != len(comp2) or str(len(comp1)) != str(len(comp3)): print("All components should be of the same length") sys.exit(2) if len(comp1) not in (16, 32, 64, 128, 256): print("All components should be of byte length") sys.exit(2) >>> a = "a133efb38766" >>> b = "a0a1a2a3a5a7" >>> a.encode().hex() '613133336566623338373636' >>> bytes1 = >>> bytes2 = bytes.fromhex( b.encode("utf-8").hex()) >>> xored = bytes( b1 ^ b2 for b1,b2 in zip(bytes1,bytes2)) >>> xored.hex() '000152020454030059025701' >>> for c,d in zip(bytes1,bytes2): ... e.append( ( c ^ d ) ) ... >>> e bytearray(b'\x00\x01R\x02\x04T\x03\x00Y\x02W\x01') >>> e.hex() '000152020454030059025701' if __name__ == "__main__": main(sys.argv[1:])