rot13알고리즘 구현(특수문자, 대문자, 소문자 구현)
2023. 3. 1. 16:07ㆍ암호학
about rot13
https://en.wikipedia.org/wiki/ROT13
역의 개념을 이용한 카이사르 기반 암호화 기법인데. rot 14, rot15 등의 방법들을 넣으면 일반적인 카이사르 암호랑은 다른 결과값이 나온다. 따라서 이를 코딩해본다.
의 코드의 결과 값을 비교해가며 맞는 코드인지 확인했다.
ct2 = ""#입력하고자하는 평문, 혹은 암호문
apb1="abcdefghijklmnopqrstuvwxyz".upper()
apb2="abcdefghijklmnopqrstuvwxyz"
for k in range(26):
flag=""
for i in range(len(ct2)):
if( 'A'<=ct2[i]<='Z'):
if(ct2[i]>chr(ord('A')+k)):
flag+=apb1[ord(ct2[i])-ord('A')-k]
else:
flag+=apb1[((ord(ct2[i])-ord('A'))+k)%26]
elif('a'<=ct2[i]<='z'):
if(ct2[i]>chr(ord('a')+k)):
flag+=apb2[ord(ct2[i])-ord('a')-k]
else:
flag+=apb2[((ord(ct2[i])-ord('a'))+k)%26]
else:
flag+=ct2[i]
print("KEY=", k, ", FLAG=", flag, end="")
print()
'암호학' 카테고리의 다른 글
블록암호 (0) | 2023.04.12 |
---|---|
[암호] 무작위성 (0) | 2023.03.08 |
[암호] 고전암호와 암호학 기초 (0) | 2023.01.10 |