블록 암호를 사용하여 텍스트를 암호화하고 암호 해독 할 수있는 python 스크립트를 작성하려고하지만 완전히 공백 출력이 계속됩니다. 문제의 원인을 추적하려고 시도한 후에 XOR 비트 연산 (a^b)을 수행 한 후 스크립트에서 새 ASCII 값을 문자로 변환 할 수 없음을 알았습니다. rawkeylist 각 캐릭터 (십진수) ASCII 값의리스트로 변환하여 원래의 키이다블록 암호 Python unichr() 출력 형식 문제
def blockcrypt(text,key):
rawkeylist = rawintkey(key)
textlist = asciitextlist(text)
answer=''
kli = 0
for element in textlist:
answer+=str(unichr(element^rawkeylist[kli]))
kli+=1
if kli==len(rawkeylist):
kli=kli%len(rawkeylist)
return answer
. 그리고 textlist는 각 문자에 대한 10 진수 ascii 값 목록으로 변환 된 텍스트입니다. 나는 이미 올바른 목록을 출력하고 있음을 확인하기 위해 인쇄물을 사용했습니다.
문제는 몇 가지 입력에 대한 답변을 시도하지 않은 시도입니다. 더 중요한 것은, print를 여러 장소로 대체함으로써 str (unichr (element^rawkeylist [kli])) 이 unichr에 대한 연구를 수행 한 후에 아무 것도 출력하지 않고 있다는 사실을 발견했다. _____ 무엇을위한 자리 표시 자 역할을 함).
필자의 ASCII 값을 문자로 다시 변환 할 수는 없지만 가장 혁신적인 솔루션처럼 보이지는 않습니다. 또한 문자열을 사용하여 내 대답에 추가하는 것이 효과적인지 매우 의심 스럽습니다. 마지막으로, 나는 암호를 적용 할 때 내 열쇠의 문자를 통해 단순히 재활용하고 일부 연구를 한 후에 나는 내가 사용해야한다고 생각하는 패딩이라는 것을 들어 봤다.
음, 제가 추측하는 데 도움주세요.
특정 문제에 집중하면 도움을받을 가능성이 더 큽니다 (이 경우에는 지금은 덧씌우기에 대해 걱정하지 마십시오). 원하는 행동을 정확하게 알려주십시오. –
어떤 블록 암호입니까? 완전히 불안한 반복 된 키가있는 One Time Pad (OTP)처럼 보입니다. –