Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5

Зашифровать файл

24.02.2013, 12:29. Показов 6353. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учебная программа test_crypto принимает аргументы: 2 файла, один содержит строку из символов a-z без повторов, а во второй эта строка либо зашифровыввается, либо расшифровывается. Алгоритм шифрования: позиция символа в алфавите определяет замену символу из случайно сгенерированной перестановки символов a-z (с той же позицией в полученной строке). У меня ничего не записывает во второй файл, ошибок не выводит, но выводит Complete из программы. Прикрепляю файлы проекта.
Вложения
Тип файла: txt char_translator.py.txt (698 байт, 21 просмотров)
Тип файла: txt crypto.py.txt (1.2 Кб, 20 просмотров)
Тип файла: txt f1.txt (27 байт, 11 просмотров)
Тип файла: txt test_crypto.txt (1.2 Кб, 26 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2013, 12:29
Ответы с готовыми решениями:

Зашифровать файл шифром цезаря
Зашифруйте данный текстовый файл шифром Цезаря, при этом символы первой строки файла должны циклически сдвигаться на 1, второй строки — на...

Зашифровать файл шифром Цезаря
Зашифруйте данный текстовый файл шифром Цезаря, при этом символы первой строки файла должны циклически сдвигаться на 1, второй строки — на...

Зашифровать файл циклическим сдвигом вправо
Зашифровать файл циклическим сдвигом вправо Код не работает Помогите, пожалуйста f = open('C:\python\File1.txt', 'r') line =...

17
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.02.2013, 02:48
у тебя там
Python
1
CharTranslator = s
а надо
Python
1
self.char_translator = s
self. - доступ к экземпляру, у которого вызывается __init__()
1
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
25.02.2013, 09:52  [ТС]
Исправил, но по-прежнему видимо зависает где-то.
Вложения
Тип файла: txt crypto.py.txt (1.2 Кб, 15 просмотров)
Тип файла: txt char_translator.py.txt (713 байт, 12 просмотров)
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.02.2013, 10:04
Цитата Сообщение от Alex9
Python
1
if alph.index(self.char_translator) == None:
это работать не будет, потому что никаких None'ов там не выдаётся

ты прямо в модуле сделай вызов функции, которая создаёт такой объект и проверяет его работоспособность, типа теста
Python
1
2
if __name__ == '__main__':
    test()
когда он будет готов, тогда и будешь подключать его к шифратору
1
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
08.03.2013, 16:11  [ТС]
Какой минимум должен быть описан в char_translator, чтобы можно было в test_crypto писать так:
Python
1
2
3
4
5
6
7
8
9
10
import char_translator
import crypto
import sys
...
try:
    ct = char_translator.CharTranslator(ts)
except char_translator.InvalidTranslationString, e:
    print >> sys.stderr, "Invalid translation string created."
    print >> sys.stderr, "Aborting."
    sys.exit(1)
?
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
08.03.2013, 23:57
Цитата Сообщение от Alex9 Посмотреть сообщение
Python
1
char_translator.InvalidTranslationString
это должно быть исключением (класс должен наследовать от Exception)

в test_crypto.py ошибка в проверке количества аргументов
нужно
Python
1
2
3
if len(sys.argv) != 3:
    print usage
    sys.exit(1)
1
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
09.03.2013, 12:12  [ТС]
Правильно ли реализована работа с исключением ?
Python
1
2
3
4
5
6
class InvalidTranslationString(Exception):
    def __init__(self):
        return random_permute_chars()
 
...
self.char_translator = InvalidTranslationString()
Добавлено через 7 минут
Python
1
ct = char_translator.CharTranslator(ts)
В файле char_translator должен быть класс CharTranslator, конструктор которого возвращает объект для ct исходя из принятого ts ?
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.03.2013, 13:44
Цитата Сообщение от Alex9 Посмотреть сообщение
Правильно ли реализована работа с исключением ?
1) там не нужен __init__(), просто pass достаточно
2) __init__() никогда ничего не возвращает

Добавлено через 1 минуту
Цитата Сообщение от Alex9 Посмотреть сообщение
В файле char_translator должен быть класс CharTranslator, конструктор которого возвращает объект для ct исходя из принятого ts ?
он уже там есть, надо просто правильно исключение порождать (raise)
1
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
09.03.2013, 14:57  [ТС]
Вот что получилось в итоге. По какому условию можно генерировать ошибку, если убрать None ?
Вложения
Тип файла: txt test_crypto.txt (1.2 Кб, 10 просмотров)
Тип файла: txt char_translator.py.txt (652 байт, 7 просмотров)
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.03.2013, 00:42
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import string
 
alph = list(string.ascii_lowercase)
 
class InvalidTranslationString(Exception):
    pass
 
class CharTranslator:
    def __init__(self, s):
        global alph
        if set(s) - set(alph):
            raise InvalidTranslationString
        self.alph = alph
        self.char_translator = s
    def translate_char(self, c):
        return self.char_translator[self.alph.index(c)]
    def untranslate_char(self, c):
        return self.alph[self.char_translator.index(c)]
 
def test_ct():
    ct = CharTranslator('abcd')
    print(ct.translate_char('b'))
 
if __name__ == '__main__':
    test_ct()
1
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
10.03.2013, 12:55  [ТС]
Создал тест для crypto, но выдает ошибки.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# -*- coding: utf-8 -*-
import random, char_translator, sys
 
 
 
class Coder:
    def __init__(self, d):
        self.crypto = d
    def encode_file(self, namein, nameout):
        try:
            fin = open(namein, 'r')
            fout = open(nameout, 'w')   
            for line in fin:
                if line == '':
                    break
                else:
                    x = char_translator.CharTranslator(line)
                    s = ""
                    for ch in line:
                        s = s + x.translate_char(ch)
                    fout.writelines(s)             
        except IOError as e:
            print 'No file found.'
    def decode_file(self, namein, nameout):
        try:
            fin = open(namein, 'r')
            fout = open(nameout, 'w')   
            for line in fin:
                if line == '':
                    break
                else:
                    x = char_translator.CharTranslator(line)
                    s = ""
                    for ch in line:
                        s = s + x.untranslate_char(ch)
                    fout.writelines(s)           
        except IOError as e:
            print 'No file found.'
 
def test():
    c = Coder('sfsddsfsdfsdf')
    crypt = c.encode_file('f1', 'f2')    
 
if __name__ == '__main__':
    test()
 
sys.exit("Complete")
Миниатюры
Зашифровать файл  
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.03.2013, 16:18
все файлы упакуй в архив zip и присоедини к сообщению
туда же присоедини скриншот ситуации, соответствующей тому, что находится в архиве
1
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
10.03.2013, 18:28  [ТС]
Все по инструкции.
Вложения
Тип файла: zip archieve.zip (8.7 Кб, 3 просмотров)
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.03.2013, 19:21
там поправил, остались логические ошибки (не шифрует)
Вложения
Тип файла: zip archive.zip (2.1 Кб, 8 просмотров)
1
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.03.2013, 19:24
-----
0
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
10.03.2013, 19:49  [ТС]
А в какой функции ошибка есть ?
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.03.2013, 20:29
в классе CharTranslator, поясни, что такое алфавит (для чего он) и что такое строка, передаваемая в __init__()
в чём заключается перевод символа ?
0
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
10.03.2013, 22:31  [ТС]
Зашифровываться символ должен по следующему алгоритму:
translate_char
1. Вычисляется позиция символа в алфавите.
2. Из строки с перестановкой берется символ по полученному номеру позиции.
3. Заглавные буквы шифровать не обязательно, а прочие символы нужно оставить без изменений.

untranslate_char по не заданному алгоритму должна расшифровать символ.

random_permute_chars() создает случайную перестановку символов a-z нижнего регистра.
В __init__ поступает такая перестановка. Ее нужно проверить на правильность и записать в объект CharTranslator(по заданию так назван).

Это тренировочная программа, тут не важно качество шифра.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2013, 22:31
Помогаю со студенческими работами здесь

Как зашифровать файл простой заменой?
Здравствуйте! Задали написать программу,а у меня проблемы, ибо чайник. Файл crypt.txt содержит шифрующий словарь: каждой букве...

Зашифровать число
Здравствуйте! Мне нужна функция, которая будет шифровать целое число и проверять, не внесены ли в него изменения. Сохраняться все данные...

Зашифровать сообщение в тексте Python
В заданном тексте требуется скрыть некоторую фразу,состоящую из букв. Если бит секретного сообщения равен единице, то в тексте-контейнере...

Записать текст в матрицу и зашифровать
Прошу оказать помощь новичку в освоении python. Задача такая, пользователь вводит текст, в зависимости от длины создается оптимальная...

Выбрать файл и зашифровать его, так же и расшифровать
Есть готовый графический интерфейс,вот есть код с шифровкой файлов и надо просто его импортировать в программу написанная ниже, чтобы можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru