题目:
1、比如说,我想 “我喜欢月月” 这句话加密即:将字符串中的每个字符的unicode值全都向后移动三位,即unicode 值加3,然后输出。
2、将按照上述规则加密的文字解密即:将字符串中的每个字符的unicode值全都向前减三。
#caesarencode programme while True: txt = input("please type you word:") for i in txt: if "a" <= i <="z": #这是最关键的一步,通过对26取余数,可以再a-z,或者在A-Z,这26个英文字母中重复 print(chr(ord("a")+(ord(i)-ord("a")+3)%26),end = '') elif "A"<= i <="Z": print(chr(ord("A")+(ord(i)-ord("A")+3)%26),end = '') else: print(i,end = '') #anather way txt = input("please input you number") c = 0x4e00 di = {} for i in range(20902): # 这也是加密的方法,用的是字典的方法,并且将你输入的每个文字,都转换成了对第一个中文字符的移动,当然这是对中文进行加密,中文的unicode 值范围在0x4e00-0x9fa5之间,一共有20902个文字,当然这里每个要加密的文字向后移动了10451个位置。 di[chr(c+i)] = chr((i+10451)%20902 + c) #将所有文字全部移动104521个位置,然后放在字典里,存起来。 print(len(di)) #对于输入的每个字符,从字典里去找。 for i in txt: print(("输出(加解密后)" +di.get(i),end = '') #another way: print("输出(加解密后)" + "".join([di.get(i) for i in txt]))
我用的第二种方法:
当然还有解密的方法,未完待续。