728x90

 

αἴνιγμα

에니그마

 

입력한 문장의 아스키코드를 증가시켜 암호문을 만들어 보자!

복호화: 부호화(암호화) 되기 전 상태로 되돌리는 것.

암호화는 사용자가 입력한 수만큼 아스키코드를 증가시켜 문장을 암호화 시키고,

복호화는 암호화의 역순으로 설계하였습니다.

 

               입력문                                             암호문                       코드

안녕! 잘 지내?? (입력 난이도:3300)-----> 투븹അഄ푼ഄ횤붘ണണ 315720900

 

입력 문장과 입력 난이도는 각각 따로 입력하며, 출력은 암호문과 복호화에 사용되는 코드와 함께 출력 됩니다.

코드는 입력한 난이도에 임이의 숫자인 95673(ma)을 곱한 수입니다.


먼저 전체 코드를 보면

암호화

import os
kegm = input("문장: ")
na = int(input("+α 난이도(1~4200): "))
ma=95673 #변경가능
kegm_s=""
kegm2=""
c=''
ac=0
for i in range(len(kegm)):
    c=kegm[i]
    ac=ord(c)
    ac+=na #코드+
    c=chr(ac)
    kegm_s+=c

naa=na*ma
print("암호화 결과: ",kegm_s,naa)
os.system('pause')

kegm = 암호화하는 문장

na = 아스키코드 증가 값

ma = 출력 시 아스키코드 증가 값을 암호화함.

 

암호문 작업은 for 문의 이용하여 입력한 만큼 아스키코드를 증가시키며,

작업이 끝나면 입력한 난이도에 95673을 곱하여 나오는 값과 함께 암호문이 출력합니다


복호화

import os
maa= input("암호문: ")
ba=maa.split()
kegm=ba[0]
na=int(int(ba[1])/95673) #95673

kegm_s=""
kegm2=""
c=''
ac=0
for i in range(len(kegm)):
    c=kegm[i]
    ac=ord(c)
    ac-=na
    c=chr(ac)
    kegm_s+=c
print("해독 결과: ",kegm_s)
os.system('pause')

출력된 문장을 입력하면 암호문은 ba[0]에 코드는 ba[1]에 저장되며,

ba[1]에 저장된 코드를 95673으로 나누어 아스키코드 증가 값은 계산합니다.

이후 작업은 암호화의 역순으로 진행됩니다.


Encryption_v2.0

https://github.com/FURY312/Encryption_V2.0.git

 

GitHub - FURY312/Encryption_V2.0: 심심할때 만든 파일.

심심할때 만든 파일. Contribute to FURY312/Encryption_V2.0 development by creating an account on GitHub.

github.com

728x90