Зашифрованный текст удаляет текст в файле и перезаписывает его

#python

Вопрос:

Это мой код , когда я пытаюсь добавить 2 пароля , он перезаписывает файл

 import time import hashlib from hashlib import sha256 import cryptocode from cryptocode.myfunctions import decrypt master_pass_db = "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4" def main():  while True:  print('''  -------------------------  Commands:  1. add a password  2. read passwords  3. quit  4. delete database  -------------------------  ''')  command = input('Command : ')  if command == '1':  password = input('Please Enter The New Password : ')  username = input('Please Enter The Username :')  password = f'''  UserName : {username}  Password : {password}  '''  encoded_password = cryptocode.encrypt(password , master_pass_db)  with open('Database.txt' , 'w ') as f:  f.write('n')  f.write(encoded_password)    elif command == '2':  with open('database.txt' , 'r') as f:  passwords = f.read()  passwords = cryptocode.decrypt(passwords , master_pass_db)  print(passwords)  elif command == '3':  pass  elif command == '4':  pass  else:  print('Invalid Command') #1234  master_pass_input = input("Enter Your Master Password : ").encode() hashing_input = hashlib.sha256(master_pass_input).hexdigest() if master_pass_db == hashing_input :  main() else:  print('Wrong Password...')  time.sleep(1)  quit()  

например : Введите Свой Мастер-Пароль : 1234

 -------------------------  Commands:  1. add a password   2. read passwords   3. quit  4. delete database   -------------------------    

Команда : 1
Пожалуйста, Введите Новый Пароль : Омар Пожалуйста, Введите Имя Пользователя :FaceBook

 -------------------------  Commands:  1. add a password   2. read passwords   3. quit  4. delete database   -------------------------    

Команда : 1 Пожалуйста, Введите Новый Пароль : boody Пожалуйста, Введите Имя Пользователя :Instagram

 -------------------------  Commands:  1. add a password  2. read passwords  3. quit  4. delete database  -------------------------  

Команда : 2

 UserName : Instagram  Password : boody    -------------------------  Commands:  1. add a password  2. read passwords  3. quit  4. delete database  -------------------------  

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

Комментарии:

1. Вы не задали ни одного вопроса. Почему вы думаете, что код, который перезаписывает файл, не должен этого делать?

2. я отредактировал его , пожалуйста, проверьте еще раз

3. Почему вы думаете, что код, который перезаписывает файл, не должен этого делать?

4. должен ли он перезаписать файл ? я хочу сохранить столько паролей, сколько нравится пользователю, а не только один пароль

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

Ответ №1:

Проблема в том, что вы просите код перезаписать, а не добавлять в контекстный менеджер:

 encoded_password = cryptocode.encrypt(password , master_pass_db) with open('Database.txt', 'w ') as f:  f.write('n')  f.write(encoded_password)  

Режим «w » сообщает контекстному менеджеру, что вы хотите перезаписать все содержимое файла. Скорее вам следует изменить контекстный менеджер так, чтобы он читался:

 with open('Database.txt', 'a ') as f:  

Режим «a » указывает контекстному менеджеру (1) создать файл, если он не существует, и (2) добавить в конец файла, если он уже существует.