㈠将原密码中的小写字母转换成大写字母;
㈡将原密码中的大写字母转换成小写字母;再利用移位秘钥中对应的数字循环右移,移位秘钥不够时可以循环使用。如移位秘钥为“312”,待加密字母“abcde”,则应将字母a,b,c,d,e分别循环右移3位、1位、2位、3位、1位;
㈢将原密码中的数字转换为与其对称的数字,例如:0→9,3→6,5→4……9→0;
㈣原密码中其它特殊字符不改变。
程序运行界面如图所示,实现上述功能的程序代码段如下:
def change(zf):
if "A"<=zf<="Z":
s=zf.lower() else: #将字符 zf 中的大写字母转化为小写字母
else:
s=zf.upper() #将字符 zf 中的小写字母转化为大写字母
return ①
pw=input("请输入原密码:")
yw=input("请输入移位秘钥: ") res="";n=0
for ch in pw:
if "a"<=ch<="z":
ch=change(ch)
"A"<=ch<="Z": ch=change(ch)
ch=chr((ord(ch)-97+int(yw[n]))%26+97)
n= ②
elif "0"<=ch<="9":
ch= ③
res=res+ch
print("生成新密码:",res)
① ② ③