如何将多个字符串传递给python程序

2024-04-24 05:09:57 发布

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

为了好玩,我做了一个非常简单的Python程序:

var = "bello"
pas = raw_input("insert password\n")
if(pas==var):
    print("\naccess granted\n")
    print("\ncool information")
else:
    print("\naccess denied")

现在我试着用crunch强行访问ubuntu终端上的shell:

crunch 1 5 | python pex.py

你知道吗聚乙烯是程序的名称。但是它不起作用,我怀疑程序的执行没有迭代,但是我不知道如何使这种暴力攻击起作用。 你能帮助我吗?最好有一个完整的解释。你知道吗


Tags: 程序inputrawifinformationvarpasswordpas
2条回答

第一次输出压缩到文件。这有一个副作用,您可以实际检查crunch产生了什么。但是,您可以跳过该文件。你知道吗

crunch 1 5 >> pas.txt

将文件加载到环境数组中(BASH 4示例)

readarray pas_a < ./pas.txt

每个密码执行一次

   for pas in "${pas_a[@]}"
   do
       ./python pex.py "$pas" &
   done < ./pas.txt

拆下&;使其连续而不是平行。你知道吗

如果愿意,请从环境中清除阵列。你知道吗

使用sys.argv调用程序时,获取传递的参数,而不是采用raw_input。你知道吗

pas = argv[1]

然后,当您调用python pex.py <password>时,pas将被设置为<password>。你知道吗

注意

如果密码是多个字,这将不起作用。您需要将sys.argv(不包括第0个元素,即程序名)的内容与' '.join()连接起来。你知道吗

pas = ' '.join(argv[1:])

相关问题 更多 >