解题步骤:
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