Python中的真正安全性

tkb*_*kbx 3 python encryption

我一直在寻找一种在if语句中使用密码的方法.显然,if theRawInput == theCorrectPassword:是非常不安全的.有任何想法吗?我已经看到了关于这个主题的其他问题,但他们都建议使用base64,这也是非常不安全的(我在不使用密码的情况下破解了自己编译的脚本的密码).

phi*_*hag 6

如果攻击者可以访问您的密码数据库,则仍然隐藏密码的唯一方法是对其进行哈希处理.包含一个salt以防止攻击者依赖通用哈希表:

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

请注意,这对于选择不当的密码仍无济于事.对于这些,请确保攻击者无权访问密码数据库.如果您希望潜在的攻击者能够运行您的程序,但不能访问您的程序操作的某些数据,则必须将该数据移动到远程且安全的服务器程序,该程序本身执行身份验证.

  • @ lucase.62如果依赖于攻击者无法读取您的代码,您的安全性可能不合理.您可以做的是运行一个安全的服务器,用户可以使用它来执行他们的程序.在没有特定配置(这是一个真正的*复杂*问题)的多用途平台(例如,Windows,GNU/Linux,Mac OS X)上,不可能提供他们无法读取的可执行文件. (2认同)