예제 #1
0
def gen_key():
    try:
        method = input('Выберите метод для генерации ключа:\n1)Замена\n2)Перестановка\n3)Гаммирование\n\n')
        if not method in ['1', '2', '3']:
            raise Exception('Неверный выбор метода')
        out = open(input('Введите название: ') + '.key', 'w+', encoding='utf-8')
        alp_path = input('Выберите путь до алфавита\n')
        try:
            alp_fle = open(alp_path, 'r', encoding='utf-8')
            alp = alp_fle.read()
            alp_fle.close()
        except:
            raise Exception('Ошибка чтения файла/отсутствие файла')
        if alp_path[len(alp_path) - 5:] != '.alph':
            raise Exception('Неверное расширение алфавита')
        if method == '1':
            dec = replacement_code.replacement(alp)
            out.write(dec.get_key())
        elif method == '2':
            dec = permutation_cipher.permutation(alp)
            out.write(dec.get_key())
        else:
            dec = gamma_code.gamma(alp)
            out.write(dec.get_key())
        out.close()
        print('Дело сделано\n')
    except Exception as e:
        print(e)
예제 #2
0
def dec_text():
    key_path = input('Выберите путь до файла ключа: ')
    if key_path[len(key_path) - 4:] != '.key':
        print('Неверный формат ключа')
        return
    txt_path = input('Выберете путь до зашифрованного текста: ')
    if txt_path[len(txt_path) - 8:] != '.encrypt':
        print('Неверный формат файла')
        return
    alp_path = input('Выберете файл алфавита: ')
    if alp_path[len(alp_path) - 5:] != '.alph':
        print('Неверный формат файла')
        return
    try:
        key_fle = open(key_path, 'r', encoding='utf-8')
        txt_fle = open(txt_path, 'r', encoding='utf-8')
        alp_fle = open(alp_path, 'r', encoding='utf-8')
        key = key_fle.read()
        alp = alp_fle.read()
        tmp = txt_fle.read().split(':')
        txt = tmp[1]
        method = tmp[0]
        key_fle.close()
        alp_fle.close()
        txt_fle.close()
        del tmp
        out = open(input('Введите название: ') + '.txt', 'w+', encoding='utf-8')
        dec = None
        if method == '1':
            dec = replacement_code.replacement(alp)
        elif method == '2':
            dec = permutation_cipher.permutation(alp)
        elif method == '3':
            dec = gamma_code.gamma(alp)
        else:
            print('Неверный формат шифра')
            return
        out.write(dec.decrypt(txt, key))
        out.close()
        print('Операция прошла успешно. Возвращение в меню...')
    except Exception as e:
        print(e)
        return
예제 #3
0
파일: main.py 프로젝트: Gri4as/xXx
def chs_enc_meth():
    method = input(
        'Выберите метод шифрования:\n1)Замена\n2)Перестановка\n3)Гаммирование\n\n'
    )
    if not method in ['1', '2', '3']:
        print('Ошибка')
        return
    key_path = input('Выберите путь до файла ключа: ')
    if key_path[len(key_path) - 4:] != '.key':
        print('Неверный формат ключа')
        return
    txt_path = input('Выберите путь до файла текста: ')
    if txt_path[len(txt_path) - 4:] != '.txt':
        print('Неверный формат файла')
        return
    alp_path = input('Выберите путь до алфавита: ')
    if alp_path[len(alp_path) - 5:] != '.alph':
        print('Неверный формат ключа')
        return
    try:
        key_fle = open(key_path, 'r', encoding='utf-8')
        txt_fle = open(txt_path, 'r', encoding='utf-8')
        alp_fle = open(alp_path, 'r', encoding='utf-8')
        key = key_fle.read()
        txt = txt_fle.read()
        alp = alp_fle.read()
        key_fle.close()
        txt_fle.close()
        alp_fle.close()
        out = open('output.encrypt', 'w+', encoding='utf-8')
        enc = None
        if method == '1':
            enc = replacement_code.replacement(alp)
        elif method == '2':
            enc = permutation_cipher.permutation(alp)
        elif method == '3':
            enc = gamma_code.gamma(alp)
        out.write(method + ':' + enc.encrypt(txt, key))
        out.close()
        print('Операция прошла успешно')
    except:
        print('Ошибка')
        return