我一直在寻找一种在if语句中使用密码的方法。显然,if theRawInput == theCorrectPassword:是非常不安全的。有什么想法吗?我看过这个主题的其他问题,但它们都建议使用base64,它也非常不安全(我没有使用密码就破解了我自己编译的脚本的密码)。
发布于 2011-11-11 00:01:31
如果攻击者有权访问您的密码数据库,则仍然隐藏密码的唯一方法就是对其进行散列处理。包含一个salt,以防止攻击者依赖通用哈希表:
import hashlib
salt = 'uphi8eiV'
hash = 'a7a2a98cc06f5b2935db5d2866670cc8b48116022e5bc30095b6167ddc2f3f96'
if hashlib.md5.hexdigest(salt + rawInput).hexdigest() == hash:
print('Correct password')请注意,这仍然不会对错误选择的密码有所帮助。对于这些攻击,请确保攻击者没有访问密码数据库的权限。如果您希望潜在攻击者能够运行您的程序,但不能访问您的程序操作的某些数据,则必须将这些数据移动到一个远程的、安全的服务器程序,该程序本身执行身份验证。
https://stackoverflow.com/questions/8082334
复制相似问题