我为自己改变职业生涯但我遇到很多问题的程序编写了这个脚本。假设接受一个字符串并用密钥加密它。不知道从何处开始进行故障排除,因为我是编程新手,所以来这里寻求帮助。也许如果你能指出我的写作方向从哪里开始?
这是我得到的错误,但看起来很好。
$ python temp.py -p "ThisIsATestOfMyCode" -k "testtest"
File "encrypt.py", line 37
else:
^
这是我的代码。
#!/usr/bin/env python
import sys, argparse
def encrypt(varAble1, varAble2):
varAble1_size = len(varAble1)/float(len(varAble2))
if str(varAble1_size).split(".")[1] == "0":
else:
while str(varAble1_size).split(".")[1] != "0":
varAble1 +== "@"
varAble1_size = len(varAble1)/float(len(varAble2))
code = []
varAble1 = list(varAble1)
varAble2 = list(varAble2))
multiply_size = int(str((varAble1_size)).spliy(".")[0]) * 8
while varAble1 != []:
p_varAble1 = varAble1[0:8]
p_varAble2 = varAble2[0:8]
temp_list = []
for i in xrange(0,8):
if type(p_varAble2[i]) == type(int):
new_ct = (ord(chr(p_varAble2[i])) ^ ord(p_varAble1[0]))
else:
new_ct = (ord(p_varAble2[i]) ^ ord(p_varAble1[0]))
code.append(new_ct)
temp_list.append(new_ct)
varAble1.pop(0)
p_varAble1.pop(0)
varAble2 = temp_list
varAble2.reverse()
code.reverse()
varAble1 = code.reverse()
code_text = []
for i in code:
hex_value = hex(i)
if len(hex_value) != 4:
code_text.append("0" + hex(i)[2:])
else:
code_text.append(hex(i)[2:])
varAble2 += i
code_text = "".join(code_text).upper()
return code_text
def main():
parser = argparse.ArgumentParser(description="Encrypt things")
parser.add_argument("-p", "--var1",help="String to enc",metavar='<pt>', required=True)
parser.add_argument("-k", "--var2", help="8 length key to encrypt with", metavar='<key>', required=True)
args = parser.parse_args()
var1 = args.var1
var2 = args.var2
hash = encrypt(var1, var2)
print "[+] Encrypted using %s [+]\n%s" % (var2, hash)
if __name__ == "__main__":
main()
答案 0 :(得分:2)
if str(varAble1_size).split(".")[1] == "0":
的块为空,因此您需要在其后添加pass
语句。 Keef Baker也正确地发现第37行else:
的块没有正确缩进。
答案 1 :(得分:2)
您必须在else
之后缩进代码:
else:
new_ct = (ord(p_varAble2[i]) ^ ord(p_varAble1[0]))
正如安德鲁·库尔帕所指出的那样,
之后if str(varAble1_size).split(".")[1] == "0":
为空,因此您需要在该块中执行某些操作,或者添加pass
语句。
Python不使用括号,而是使用缩进来控制流程。 在您的代码中,Python解释器会看到 else 但没有声明,因此会抛出错误。 在此处查看有关控制流程的更多信息:https://docs.python.org/3/tutorial/controlflow.html