#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) добавить в конец файла, если он уже существует.