维吉尼亚加密解密

# coding=utf-8
import pyperclip 

LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 

def main():
	myMessage = """I have a dream,the dream is rooted in Chinese dream,I am proud of my country,
	one of the great nation in the world.I believe that we can live a happy life which our ancestors presued
	for a long time"""
	
	mykey = "ASIMOV"
	mode = raw_input("please choose the mode 1(encrypt) or 0(decrypt):")
	if mode == 1:
		mymode = "encrypt" 
	else:
		mymode ="decrypt"
	if  mymode == "encrypt":
		translated = encryptMessage(mykey,myMessage)
	elif mymode =="decrypt":
		translated = decryptMessage(mykey,myMessage)
	print('%sed message:'%(mymode.title()))
	print(translated)
	pyperclip.copy(translated)
	print()
	print('the message has been coiped to the clipboard')

def encryptMessage(key,message):
	return translateMessage(key,message,'encrypt')
def decryptMessage(key,message):
	return translateMessage(key,message,'decrypt')
def translateMessage(key,message,mode):
	translated = []
	keyIndex = 0
	key = key.upper()
	for symbol in message:
		num = LETTERS.find(symbol.upper())
		if num != -1:
			if mode == "encrypt":
				num += LETTERS.find(key[keyIndex])
			elif mode == "decrypt":
				num -= LETTERS.find(key[keyIndex])
			num %= len(LETTERS)
			if symbol.isupper():
				translated.append(LETTERS[num])
			elif symbol.islower():
				translated.append(LETTERS[num].islower())
			keyIndex +=1
			if keyIndex ==  len(key):
				keyIndex = 0 
		else:
			translated.append(symbol)

	return ''.join(translated)

if __name__ == '__main__':
	main()



    原文作者:维吉尼亚加密问题
    原文地址: https://blog.csdn.net/boke14122621/article/details/70232953
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞