我有一件相当天真的事情要做,我想知道是否有人能回答我,如果这是完全愚蠢的。如果我要问的不是愚蠢,也许是天真,我会感激如果我能得到一个正确的方向轻推。
我有一个名为pwds.py的文件。其内容如下
import hashlib
class Pwds:
def __init__(self):
pass
def printGood(self,key):
y = hashlib.sha1()
y.update(key.encode('ascii'))
if y.hexdigest() == "db5f60442c78f08eefb0a2efeaa860b071c4cdae":
print("You entered the correct key!")
else:
print("Intruder!")
然后我有另一个名为runme.py的文件,其内容是
import pwds
x = input("Please type the password: ")
y = pwds.Pwds()
y.printGood(x)
x = input("Press any key to end")
第一次运行runme.py时,将创建一个pwds.pyc文件。我的想法是,一旦创建了.pyc文件,我就可以删除pwds.py并正常运行runme.py。此外,我认为pwds.py的内容将包含在.pyc中,但由于这是一个“编译”的Python文件,因此无法读取。因此,虽然我可以删除pwds.py并成功地运行runme.py,但是如果我在记事本中打开它,pwds.pyc几乎是可读的。
因此,一般的问题是:如何使pwds.py的内容不可读?对于上面的代码,我想要做的是在Python文件中保存“秘密”信息,编译它,并且只有输入正确的键时才能访问它的内容。这种做法是否太愚蠢,甚至连考虑都没有?我不想写一个“加布勒”和“脱胶器”。我认为这将是一个简单而廉价的解决方案。
谢谢你看这个!如有任何其他资料,请告知我。
发布于 2010-11-06 16:34:26
.pyc文件只包含编译好的python代码,因此不需要每次运行程序时都重新编译。因此,它中的所有字符串仍然是可读的(您可以始终通过pdb调试器查看二进制内容或步骤)。
如果要使用密码保护代码中的某些内容,则必须使用强加密加密,并且只存储加密版本。然后使用用户的密钥/密码对数据进行解密。
https://stackoverflow.com/questions/4113987
复制相似问题