Python лучший способ зашифровать пароль в открытом файле - PullRequest
0 голосов
/ 29 января 2019

Я ищу способ получить пароль от пользователя, но с хорошей безопасностью.

В данный момент я пишу пароль пользователя в yaml файле, например:

---
app:
  username: tata
  password: toto

с кодом Python:

 url = http://application.com
 username = Cfg.get(['app', 'username'])
 password = Cfg.get(['app', 'password'])
 auth = Appli(url, username, password)

, но он не очень чистый, я не хочу шифровать до base64 с помощью функции base64.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Есть много питонических способов сделать это.Вы также можете хранить свой пароль на уровне базы данных только в виде хэша, например SHA1, md5, SHA256 и т. Д.

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

import hashlib

url = http://application.com
username = Cfg.get(['app', 'username'])

password= Cfg.get(['app', 'password'])

#store pass_hash in the database
pass_hash= hashlib.sha256(password.encode()).hexdigest()

#authenticate using pass_hash not the actual textual password
auth = Appli(url, username, pass_hash)

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

0 голосов
/ 29 января 2019

Не совсем понятно, какую проблему вы пытаетесь решить.

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

Примечание: вы можете найти эту старую запись в блоге полезную

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