Python中的真正安全性

Python中的真正安全性,python,encryption,Python,Encryption,我一直在寻找在if语句中使用密码的方法。显然,如果rawInput==正确的密码:是非常不安全的。有什么想法吗?我已经看到了关于这个主题的其他问题,但它们都建议使用base64,这也是非常不安全的(我破解了自己编译的脚本的密码,但没有使用密码) 如果攻击者可以访问您的密码数据库,则仍然隐藏密码的唯一方法是对密码进行哈希运算。包括一个用于防止攻击者依赖通用哈希表的: import hashlib salt = 'uphi8eiV' hash = 'a7a2a98cc06f5b2935db5d286

我一直在寻找在if语句中使用密码的方法。显然,
如果rawInput==正确的密码:
是非常不安全的。有什么想法吗?我已经看到了关于这个主题的其他问题,但它们都建议使用base64,这也是非常不安全的(我破解了自己编译的脚本的密码,但没有使用密码)

如果攻击者可以访问您的密码数据库,则仍然隐藏密码的唯一方法是对密码进行哈希运算。包括一个用于防止攻击者依赖通用哈希表的:

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

请注意,这对选择不当的密码仍然没有帮助。为此,请确保攻击者无权访问密码数据库。如果您希望潜在的攻击者能够运行您的程序,但不能访问您的程序处理的某些数据,则必须将该数据移动到远程安全的服务器程序中,该程序本身执行身份验证。

好的,但一旦完成,是否有办法隐藏代码?我已经尝试编译到.pyc,但我仍然可以阅读大部分脚本。我还尝试使用chmod使其仅执行,但执行依赖于读取。谢谢你的回答@lucase.62如果攻击者无法读取您的代码,则您的安全性可能不可靠。你能做的就是运行一个安全的服务器,用户可以用它来执行他们的程序。在没有特定配置的多用途平台(比如Windows、GNU/Linux、Mac OS X)上(这是一个真正复杂的问题),不可能提供他们无法读取的可执行文件。