Programming$/Crypto
caesor / mono alphabatic / vigenere
ch4rli3kop
2020. 4. 19. 00:01
반응형
import string
def caesor():
a= 'PXEVHFX MH MAX ATVDBGZ PHKEW'
letters = string.ascii_lowercase
for i in range(1, len(letters)+1):
result = ''
for j in a:
#print(i)
tmp = chr(i+ord(j))
if tmp > 'Z':
tmp = chr(ord(tmp) - len(letters))
result += tmp
print(result)
def mono_alphabatic():
enc = 'AKVP RPTSI CKIT UPVT'
key = 'SECRETWORLD'
dic = dict()
count = 97
last = 0
for i in key:
if dic.get(i):
continue
dic[i] = chr(count)
count += 1
last = ord(i)
while len(dic) < 26:
last += 1
if chr(last) > 'Z':
last = last - len(string.ascii_lowercase)
if dic.get(chr(last)):
continue
dic[chr(last)] = chr(count)
count += 1
print(dic)
result = ''
for i in enc:
if i == ' ':
result += ' '
continue
result += dic[i]
print(result)
def vigenere():
enc = 'OMUYXHJWGVEYYZTGXQWGCJ'
key = 'secretisbeautiful'
result = ''
idx = 0
for i in enc:
if idx >= len(key):
idx = 0
tmp = chr(ord(i) - (ord(key[idx]) - ord('a')))
if tmp < 'A':
tmp = chr(ord(tmp) + 26)
idx += 1
result += tmp
print(result)
#caesor()
#mono_alphabatic()
vigenere()
반응형