Python如何隐藏代码

2024-09-28 05:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python编写了一个入门程序。但是任何人都可以编辑该文件并找到密码和用户名。如何隐藏代码

代码:

username = "coder"
password = 12345

takedusername = input("Username")
takedpasswrd = input("Password")

if takedusername == username and takedpasswrd == password:
    print("Welcome")
elif takedusername != username and takedpasswrd == password:
    print("Username is wrong")
elif takedusername ==  username and takedpasswrd != password:
    print("Password is wrong")
elif takedusername != username and takedpasswrd != password:
    print("Username and password is wrong")

编辑:我正在使用Linux


Tags: and代码程序编辑inputisusernamepassword
2条回答

做到这一点的技术实际上是博士论文的主题。将数据暴露于您不向用户公开的软件中是一个经过充分研究的领域,虽然有一些解决方案可以提供帮助,但没有什么是万无一失的

但是,您要做的只是密码验证。由于其在商业中的实际应用,这可能是一个更广泛研究的主题,解决方案是停止存储密码,转而开始存储其哈希。考虑一个STDLIB函数,比如^{}或第三方库,比如^{},但是不管你做什么,都不要把EME>滚到你自己的。

您可以使用^{}对存储的用户和密码进行加密,并对输入的用户和密码进行加密,然后查看哈希值是否相同hashlib始终为同一字符串返回相同的哈希值。我使用了一种SHA算法,因为它们使用起来很简单。如果你需要让它真正安全(能够抵抗黑客或其他东西),你应该使用SCrypt algorithm,它不是那么简单易用

from hashlib import sha1
username = sha1("coder").hexdigest()
password = sha1("12345").hexdigest()

takedusername = sha1(input("Username")).hexdigest()
takedpasswrd = sha1(input("Password")).hexdigest()

if takedusername == username and takedpasswrd == password:
    print("Welcome")
elif takedusername != username and takedpasswrd == password:
    print("Username is wrong")
elif takedusername ==  username and takedpasswrd != password:
    print("Password is wrong")
elif takedusername != username and takedpasswrd != password:
    print("Username and password is wrong")

相关问题 更多 >

    热门问题