Beispiel #1
0
def main():
    f = input("Введите имя файла: ")
    try:
        file = open(f, "rb")
    except IndexError:
        print("Wrong file")
        return

    rotors = []
    for _ in range(ROTORS_COUNT):
        rotors.append(Rotor())

    enigma = Enigma(rotors, Reflector())

    print(enigma)

    enc_file_name = "enc_" + f
    dec_file_name = "dec_" + f
    enc_file = open(enc_file_name, "wb")

    print("Start encrypting '{0}' ...".format(f))
    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:
            enc_str = enigma.encryptStr(buf)
            enc_file.write(enc_str)

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

    enigma.reset()
    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:
            dec_str = enigma.encryptStr(buf)
            dec_file.write(dec_str)
def main():
    try:
        file = open(sys.argv[1], "rb")
    except IndexError:
        print("Set file as argv[1]")
        return

    rotors = []
    for _ in range(ROTORS_COUNT):
        rotors.append(Rotor())
        
    enigma = Enigma(rotors, Reflector())
    print("!!!!!!!!!")
    print(enigma)
    print("!!!!!!!!!")
    print("!!!!!!!!!")
    print()
    print()

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

    while True:
        # считывается MAX_LEN символов из файла
        buf = file.read(MAX_LEN)
        if(not len(buf)):
            file.close()
            enc_file.close()
            break
        else:
            enc_str = enigma.encryptStr(buf)
            enc_file.write(enc_str)


    enc_file = open(enc_file_name, "rb")    
    dec_file = open(dec_file_name, "wb")
    
    enigma.reset()
    while True:
        buf = enc_file.read(MAX_LEN)
        if(not len(buf)):
            enc_file.close()
            dec_file.close()
            break
        else:
            dec_str = enigma.encryptStr(buf)
            dec_file.write(dec_str)