from string import ascii_uppercase
pass_phrase = 'PYTHON'
used = {' ', '\n'}
key = []
for c in pass_phrase.upper() + ascii_uppercase:
if c not in used:
key.append(c)
used.add(c)
key = ''.join(key)
print(key)
输出
^{pr2}$
将短语转换为大写字母,但不能像大写字母那样处理。;)
这里有一种方法,你可以使用密钥来编码和解码。在
encode = {u: v for u, v in zip(ascii_uppercase, key)}
decode = {v: u for u, v in zip(ascii_uppercase, key)}
src = 'The quick brown fox jumps over the lazy dog.'
out = ''.join([encode.get(c, c) for c in src.upper()])
print(out)
decoded = ''.join([decode.get(c, c) for c in out.upper()])
print(decoded)
输出
QAO KRBTD YLIUG NIV CRFJM ISOL QAO EPXW HI1.
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
有多种方法可以做到这一点。您需要处理密码短语中的任何重复字母,尽管对于密码短语“PYTHON”来说这不是问题。您还应该忽略密码短语中的空格。在
在这段代码中,我使用了一个集合,以便忽略密码短语中的重复字母,并且字母表中的其他字母如果在密码短语中则不会被添加到键中。在
输出
^{pr2}$将短语转换为大写字母,但不能像大写字母那样处理。;)
这里有一种方法,你可以使用密钥来编码和解码。在
输出
编码和解码例程通过使用
.get(c, c)
不变地传递非字母字符。在相关问题 更多 >
编程相关推荐