我一直在寻找一种在 if 语句中使用密码的方法。显然,if theRawInput == theCorrectPassword:
是极其不安全的。有任何想法吗?我看过其他关于这个主题的问题,但他们都建议使用 base64,这也是非常不安全的(我在没有使用密码的情况下破解了自己编译的脚本的密码)。
最佳答案
如果攻击者可以访问您的密码数据库,仍然隐藏密码的唯一方法是对其进行哈希处理。包括 salt防止攻击者依赖通用哈希表:
import hashlib
salt = 'uphi8eiV'
hash = 'a7a2a98cc06f5b2935db5d2866670cc8b48116022e5bc30095b6167ddc2f3f96'
if hashlib.md5.hexdigest(salt + rawInput).hexdigest() == hash:
print('Correct password')
请注意,这仍然无助于防止密码选择不当。对于这些,请确保攻击者无权访问密码数据库。如果您希望潜在的攻击者能够运行您的程序,但不能访问您的程序操作的某些数据,您必须将该数据移动到远程安全服务器程序,该程序会自行执行身份验证。
关于python - Python 中的真正安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082334/