Python 시 프 트 암호,복사 변환 복호화 인 스 턴 스 코드
이 코드 는 아주 오래 전에 구체 적 인 사 고 를 잊 어 버 렸 습 니 다.이 글 과 결합 하여 두 가지 암호 화 방식 의 내용 을 알 수 있 습 니 다.
앞의 두 단 계 는 암호 화 방식 에 대응 하 는 함수 이 고 세 번 째 단 계 는 통합 이다.
비밀번호
def yiwei(string,number):
'''
, ,
:A 3 , D
string ,number
A ASCII 65
'''
new_string = ""
string = string.upper() #
for i in string: #
# ascii , ascii,
new_string += chr((ord(i)-65+number)%26+65)
return new_string
##print(yiwei('AAA',3)) #
def yiwei_decode(c):
''' , '''
for i in range(1,27): # , [1,26]
print(yiwei(c,i))
print(" ")
##yiwei_decode("A") #
2.모방 변환
def fangshe_key(m,c):
'''
,
m ,c
[A-Z] [0-25]
'''
#
m = m.upper()
c = c.upper()
#
m1 = m[:1:] #
m2 = m[-1::] #
c1 = c[:1:] #
c2 = c[-1::] #
## print(m1,m2)
## print(c1,c2)
#
m1 = ord(m1)-65
m2 = ord(m2)-65
c1 = ord(c1)-65
c2 = ord(c2)-65
## print(m1,m2)
## print(c1,c2)
#
for i in range(0,26):
for j in range(0,26):
if (m1*i+j)%26==c1 and (m2*i+j)%26==c2: #
return i,j
return False
##print(fangshe_key("IF","ED")) #
def fangshe_reverse(x,y):
'''
, x^-1(%y) ,
'''
i = 0
while True:
if x*i%26==1: #
return i
i += 1
##print(fangshe_reverse(9,26)) #
def fangshe_decode(c,a,b):
'''
,
c ,a b
0<=a,b<=25, gcd(a,26)=1,a^-1 a
:c = a*m + b%26
:m = (a^-1)*(c-b)%26
'''
new_string = ''
c = c.upper() #
for i in c: #
new_i = ord(i)-65 #
new_i = (fangshe_reverse(a,26)*(new_i - b))%26 #
new_string += chr(new_i + 65) #
print(new_string)
print(" ")
##fangshe_decode("ED",9,10) #
3.모든 코드자리 옮 김 암호
복사 변환
# coding=utf-8
# : FM
# :
def menu():
'''
'''
print("-----------------------")
print("| 0. |")
print("| 1. |")
print("| 2. |")
print("-----------------------")
##menu() #
def yiwei(string,number):
'''
, ,
:A 3 , D
string ,number
A ASCII 65
'''
new_string = ""
string = string.upper() #
for i in string: #
# ascii , ascii,
new_string += chr((ord(i)-65+number)%26+65)
return new_string
##print(yiwei('AAA',3)) #
def yiwei_decode(c):
''' , '''
for i in range(1,27): # , [1,26]
print(yiwei(c,i))
print(" ")
##yiwei_decode("A") #
def fangshe_key(m,c):
'''
,
m ,c
[A-Z] [0-25]
'''
#
m = m.upper()
c = c.upper()
#
m1 = m[:1:] #
m2 = m[-1::] #
c1 = c[:1:] #
c2 = c[-1::] #
## print(m1,m2)
## print(c1,c2)
#
m1 = ord(m1)-65
m2 = ord(m2)-65
c1 = ord(c1)-65
c2 = ord(c2)-65
## print(m1,m2)
## print(c1,c2)
#
for i in range(0,26):
for j in range(0,26):
if (m1*i+j)%26==c1 and (m2*i+j)%26==c2: #
return i,j
return False
##print(fangshe_key("IF","ED")) #
def fangshe_reverse(x,y):
'''
, x^-1(%y) ,
'''
i = 0
while True:
if x*i%26==1: #
return i
i += 1
##print(fangshe_reverse(9,26)) #
def fangshe_decode(c,a,b):
'''
,
c ,a b
0<=a,b<=25, gcd(a,26)=1,a^-1 a
:c = a*m + b%26
:m = (a^-1)*(c-b)%26
'''
new_string = ''
c = c.upper() #
for i in c: #
new_i = ord(i)-65 #
new_i = (fangshe_reverse(a,26)*(new_i - b))%26 #
new_string += chr(new_i + 65) #
print(new_string)
print(" ")
##fangshe_decode("ED",9,10) #
if __name__=='__main__':
while True:
menu()
choose = int(input(" : "))
if choose==1:
string = input(" : ")
yiwei_decode(string)
elif choose==2:
string = input(" : ")
m = input(" :")
c = input(" :")
a,b = fangshe_key(m,c)
fangshe_decode(string,a,b)
else:
break
총결산파 이 썬 시 프 트 비밀번호,시 뮬 레이 션 복호화 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 시 프 트 비밀번호 시 뮬 레이 션 변환 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.