Как скрыть пароль почтового аккаунта в конфигурационном файле?
У меня есть программа Python3, которая отправляет электронные письма. Он читает переменные из файла конфигурации, и одна из них - это пароль учетной записи электронной почты, которая отправляет электронные письма. Теперь это в открытом тексте, но не должно, поэтому я ищу способ скрыть это.
Я думал о том, чтобы напрямую написать результат применения md5 к паролю, например:
password = 'write_here_the_password_encrypted'
Но следующий код не будет работать:
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username, password)
server.sendmail(from_email, to_emails, msg)
server.quit()
В любом случае, чтобы заставить работать линию server.login(username, password)
если пароль зашифрован?
1 ответ
login
Метод из SMTP требует только простой пароль, а не какой-то его хеш, поэтому единственный способ заставить его работать - незашифровать пароль перед передачей login()
,
Но так как md5 является односторонней хэш-функцией (или предназначена для одностороннего использования), вы не сможете декодировать пароль, как только закодируете его в хэш md5. Но даже если бы вы могли, то любой, кто имеет доступ к вашей конфигурации, также может.
Что вам нужно сделать - это разделить пароли и другую конфиденциальную информацию на отдельный файл и хранить его в безопасном месте, недоступном для посторонних лиц.