Python .pyc文件和原始加密

Python .pyc文件和原始加密,python,encryption,Python,Encryption,我有一件相当幼稚的事情想做,我想知道是否有人能回答,你能告诉我这是不是太愚蠢了。如果我要问的不是愚蠢的问题,而是幼稚的问题,如果我能得到一个正确方向的提示,我将不胜感激 我有一个名为pwds.py的文件。它的内容是 import hashlib class Pwds: def __init__(self): pass def printGood(self,key): y = hashlib.sha1() y.update(key.

我有一件相当幼稚的事情想做,我想知道是否有人能回答,你能告诉我这是不是太愚蠢了。如果我要问的不是愚蠢的问题,而是幼稚的问题,如果我能得到一个正确方向的提示,我将不胜感激

我有一个名为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!")
import pwds
x = input("Please type the password: ")
y = pwds.Pwds()
y.printGood(x)
x = input("Press any key to end")

然后我有另一个名为runme.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!")
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文件中,对其进行编译,并使其内容只有在键入正确的密钥时才可访问。这种方法太愚蠢,甚至无法考虑吗?我不想写一个“漱口者”和一个“脱胶者”。我认为这将是一个简单而廉价的解决方案


谢谢你读这篇文章!请告诉我是否还有其他信息需要提供。

该.pyc文件只包含已编译的python代码,因此无需在每次运行程序时重新编译。因此,其中的所有字符串仍然可读(您可以始终查看二进制内容或通过pdb调试器逐步完成程序)


如果要使用密码保护代码中的某些内容,则必须使用强加密对其进行加密,并且只存储加密版本。然后使用用户的密钥/密码对数据进行解密。

您需要隐藏什么?散列值?即使你知道,也很难找到散列到那个值的东西……我不想隐藏散列。我使用散列,因为我认为在pwds.py中键入密码是愚蠢的。我希望if语句中的语句只有在输入正确的键时才可见。但是我也不希望有人打开文件并读取if子句中的内容。您可能需要查看PyCrypto.谢谢。很抱歉延迟将问题标记为已回答。