解题步骤:
1,通过密钥得到新的一组26位表格。
2,将明文Attack AT DAWN(黎明时攻击) ,通过正常26字母表映射到新表。可以得到密文Tpptad TP ITVH。
#思路:对于字符串映射由原先的
#A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
#A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
#改为
#A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
#T R A I L B Z E S C D F G H J K M N O P Q U V W X Y
#即把给定的密钥去重后,把密钥中的字符从序列[A-Z]中挪到最前面。
while True:
try:
lineCode , line = input() , input()
code = []
res = ''
#得到不重复字母密钥
for i in lineCode:
if i not in code:
code.append(i)
#将处理得到新表
for i in range(97,123):
if chr(i) not in code:
code.append(chr(i))
#将明文映射为密文输出
for i in line:
res += code[ord(i)-97]
print(res)
except:
break
京公网安备 11010502036488号