2024-10-01 07:48:52 发布
网友
由于一些奇怪的原因,我的代码在我的笔记本电脑上的visualstudio中无法工作。它给我的脚本错误。我做错了吗?你知道吗
我犯的错误是:
print("welcome user") varpassword = input("Please enter a password: ") if varpassword = "thisisthepassword123": print("Welcome") else: print("access denied")
正如其他人指出的那样,您的条件语句应该使用==运算符(表示您正在比较两个值,看它们是否相等),而不是将值赋给变量的=。你知道吗
==
=
if varpassword = "thisisthepassword123":
我只想补充一点,您应该避免使用硬编码的密码值,特别是在python中,因为它是纯文本(除非这只是示例代码)
编辑:
使用散列算法来散列密码,然后散列用户输入并进行比较。因此,您将通过SHA1之类的内容输入密码(如果您想使用像"thisisthepassword123"这样的硬编码值,它的值将为f61c1bbcf1f7d68106a18bd753d4fc3c4925793f)。因此,使用像hashlib(https://docs.python.org/2/library/hashlib.html)这样的库可以做到:
"thisisthepassword123"
f61c1bbcf1f7d68106a18bd753d4fc3c4925793f
hashlib
import hashlib hashlib.sha1(userinput).hexdigest()
也可以考虑使用盐渍,阅读以下内容:https://crackstation.net/hashing-security.htm
编辑2:
还要确保脚本中的缩进与代码段的缩进相匹配
请添加==以比较=用于分配
正如其他人指出的那样,您的条件语句应该使用
==
运算符(表示您正在比较两个值,看它们是否相等),而不是将值赋给变量的=
。你知道吗我只想补充一点,您应该避免使用硬编码的密码值,特别是在python中,因为它是纯文本(除非这只是示例代码)
编辑:
使用散列算法来散列密码,然后散列用户输入并进行比较。因此,您将通过SHA1之类的内容输入密码(如果您想使用像
"thisisthepassword123"
这样的硬编码值,它的值将为f61c1bbcf1f7d68106a18bd753d4fc3c4925793f
)。因此,使用像hashlib
(https://docs.python.org/2/library/hashlib.html)这样的库可以做到:也可以考虑使用盐渍,阅读以下内容:https://crackstation.net/hashing-security.htm
编辑2:
还要确保脚本中的缩进与代码段的缩进相匹配
请添加==以比较=用于分配
相关问题 更多 >
编程相关推荐