我试图用vigenere密码进行加密和解密。
它是vigenere扮演一小部分的更大任务的一部分。我从bash那里得到了这个加密脚本。问题是我如何反向使用相同的代码来解密代码
import argparse
import textwrap
parser = argparse.ArgumentParser(
prog='ProgramName',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=textwrap.dedent('''\
additional information:
I have indented it
exactly the way
I want it
'''))
parser.add_argument('--foo', nargs='?', help='foo help')
parser.add_argument('bar', nargs='+', help='bar help')
parser.print_help()
我不是数学天才或程序员,所以我能得到的所有帮助都会很好。如果有人可以解释或反转它,那么它也可以解密或告诉代码如何操作,所以我在leat上了解发生的事情会很好。
//新
答案 0 :(得分:1)
要查看它的作用,只需使用bash -x
选项集启动它,例如,如果脚本保存在vig.sh
中:
bash -x vig.sh
基本上,a
来存储大写字母
-d
,是设置m
设置为-
时可解密的可选参数
从输入t
读取以存储源字符串,k
键
printf "string: ";read t
printf "keyphrase: ";read -s k
以下内容对变量t
for ((i=0;i<${#t};i++)); do
p1
包含带有后缀的字母,其中包含t
已删除的当前字符
p1=${a%%${t:$i:1}*}
p2
对key中的当前字符执行相同操作(使用模数以避免超出界限)
然后p1
和p2
长度之间的总和或差异(当设置-d选项时)用于获取字母表中的字符并附加到d
。
实施例
vig.sh
string: HELLOWORLD
keyphrase: FOO
-> MSZQCKTFZI
vig.sh -d
string: MSZQCKTFZI
keyphrase: FOO
-> HELLOWORLD
答案 1 :(得分:0)
要运行解密,请在命令中键入./vig.sh -d。因为您已经在代码中声明了[[“ $ {* /-d /}”!=“”]],所以应该这样做。