Exemple #1
0
def main():
    try:
        file = open(sys.argv[1], "rb")
    except IndexError:
        print("Set file as argv[1]")
        return

    enc_file_name = "enc_" + sys.argv[1]
    dec_file_name = "dec_" + sys.argv[1]
    enc_file = open(enc_file_name, "wb")

    count = 0
    append_bytes = 0
    d = DES([randint(0, 255) for _ in range(8)])

    print("Start encrypting '{0}' ...".format(sys.argv[1]))
    while True:
        buf = file.read(MAX_LEN)
        if (not len(buf)):
            file.close()
            enc_file.close()
            print("Encrypting done. Results saved in file: '{0}'".format(
                enc_file_name))
            break
        else:
            count += 1
            append_bytes = check_8byte(buf)
            if append_bytes:
                buf += b'0' * append_bytes
            enc_str = d.process_string(buf)
            enc_file.write(enc_str)

    enc_file = open(enc_file_name, "rb")
    dec_file = open(dec_file_name, "wb")

    print("Start decrypting '{0}' ...".format(enc_file_name))
    while True:
        buf = enc_file.read(MAX_LEN)
        if (not len(buf)):
            enc_file.close()
            dec_file.close()
            print("Decrypting done. Results saved in file: '{0}'".format(
                dec_file_name))
            break
        else:
            count -= 1
            dec_str = d.process_string(buf, DECRYPT)
            if not count and append_bytes:
                dec_str = dec_str[:-append_bytes]
            dec_file.write(dec_str)