简化简化再简化的维吉尼亚破解。
避免了很多情况,代码也很啰嗦。
#encoding: utf-8
import string
import re
import numpy as np
def encrypt(message,key):
cipher = ''
not_char = 0
for i in range(len(message)):
# a-z:97-122 A-Z:65-90
offset = ord(key[(i-not_char)%len(key)]) - ord('a')
if (message[i].isupper()):
cipher += chr(((ord(message[i]) - ord('A') + offset) % 26 ) + ord('A'))
elif (message[i].islower()):
cipher += chr(((ord(message[i]) - ord('a') + offset) % 26 ) + ord('a'))
else:
cipher += message[i]
not_char += 1
return cipher
# print (encrypt('C1c ','ab'))
# print ('c c'.isalpha())
def decrypt(message,key):
cipher = ''
not_char = 0
for i in range(len(message)):
# a-z