Почему python ничего не записывают в словарь? - PullRequest
0 голосов
/ 11 января 2020

Я создаю программу, которая сохраняет его информацию в виде закодированной информации, используя метод, который я создал.

В основном, когда я запускаю программу, она создает две переменные,

  • one это алфавит (прописные, строчные, цифры, ...)
  • другой точно такой же, за исключением того, что я использую random.shuffle() для его рандомизации.

Это " ключ "к" ключу "Я даю ему случайное число, используя random.randint(1000000000,9999999999), и этим номером я называю это имя " ключа ".

Все ключи и их имена хранится в файле.

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

(обратите внимание, что ключи всегда имеют разные имена, зашифрованные данные могут быть зашифрованы с использованием одного и того же ключа много раз, а затем сохранены в другом файле).

Сначала читаю из файла ключа

{ПРИМЕЧАНИЕ: ключи хранятся с использованием шаблона \ n, пример file.write (f '{key} \ n {key_name} \ n')}

, используя мой метод, длина всегда будет делится на 2, поэтому я использую переменную, инициализированную перед циклом for, и увеличиваю ее вместе с циклом, в то же время я использую эту же переменную для чтения из списка (результат чтения файла ключа) и назначаю имя ключу, например :

{4819572: 'varoabIfokdbKjs3918', 40101846: 'opqihduqv', 8291073: 'hqowirhwip', ...} 

Мои ключи имеют длину 354 символа, поэтому это очень маленький пример.

Вот код, описанный выше

sep = os.sep
Ot = platform.system()
file_name = os.path.basename(__file__)
path_to_file = __file__.replace(file_name, '')

with open(f'{path_to_file}database{sep}history.dll', 'r', encoding='utf-8') as file:
    keys = file.readlines()

num = 0
archive = {}
for _ in range(int(len(keys)/2)):
    key_name = str(keys[num+1]).replace('\n','')
    key = str(keys[num]).replace('\n','')
    archive[int(key_name)] = key
    num =+ 2
num1 = 0
num2 = 0

После этого я использую key_name чтобы получить ключ, который используется в функции дешифрования вместе с зашифрованным текстом.

Проблема в том, что даже если у меня в словаре 16 ключей, их всего 2. Я действительно не знаю как решить это или почему это добавляется.

1 Ответ

1 голос
/ 11 января 2020

Вы написали "num = + 2", я думаю, что вы хотели написать "num + = 2"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...