Настоящая безопасность в Python - PullRequest
3 голосов
/ 10 ноября 2011

Я искал способ использовать пароль в операторе if.Очевидно, if theRawInput == theCorrectPassword: крайне небезопасно.Есть идеи?Я видел другие вопросы по этой теме, но все они предлагают base64, который также очень небезопасен (я взломал пароль моего собственного скомпилированного скрипта без использования пароля).

1 Ответ

6 голосов
/ 10 ноября 2011

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

import hashlib
salt = 'uphi8eiV'
hash = 'a7a2a98cc06f5b2935db5d2866670cc8b48116022e5bc30095b6167ddc2f3f96'
if hashlib.md5.hexdigest(salt + rawInput).hexdigest() == hash:
  print('Correct password')

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

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