Envader에서 학습한 보안 기반인 "간단한 암호화에 대해"에 갑자기 걸려 넘어졌습니다. 그러니 설명해 보십시오.


나는 Envader에서 안전 기초를 배우고 있다.
실제로 간단한 암호를 해독할 때 파이톤이 전혀 할 줄 몰라서 실패해서 달갑지 않아요. 그래서 제가 열심히 공부한 부분을 정리하고 싶어요.

전제 지식


왜 운영되는지 모르겠는데?파이톤의 지식이 필요하다고 하니 모르면 건너뛰세요.
Prograte Python을 통해 사칙연산을 알 수 있습니다!수평적으로는 거의 눈물투성이다.
(학교에서 한 번 배웠지만 그때는 그 가치를 이해하지 못했고 이후에는 전혀 활용하지 않아 기억이 백지로 변해가는데...)

간단한 복호화


암호화를 인코딩(Encode), 해독을 디코딩(Decode)이라고 합니다.
간단한 암호라면 암호화 알고리즘을 알면 사진 반대 순서로 복호화할 수 있다.
예를 들어, 다음 암호는 [문자열 반전]에 불과하며 같은 단계를 반복하면 복합을 수행할 수 있습니다.
# 暗号化
text = "Hello World"
print(text[::-1])
dlrow olleh
# 復号
text = "dlrow olleh"
print(text[::-1])
Hello World
!
파이썬 초초보자[::-1]로서 슬라이스 단계에서 마이너스를 지정해 반전시킨다는 개념을 몰랐기 때문에 처음에는 이해할 수 없었지만 다음 링크를 통해 깨달았다.
https://qiita.com/tanuk1647/items/276d2be36f5abb8ea52e

문제 1 해결 방법


다음은 본론.첫 번째 학자는 뭘 쓰는지도 모르고 격침했다 w
질문 1. 다음은 level-1.py로 암호화되었습니다.시크릿을 디코딩하십시오.
sfeuiyC;iAc89895j78>6b:5h8j<8=89:;95j@9
level_1.py의 내용을 보면 풀 수 있으니 한번 보세요.
level_1.py
text = "secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
encrypted_text = ""

for i, v in enumerate(text):
    encrypted_text += chr(ord(v)+(i % 10))

print(encrypted_text)
첫 번째 학자에게 초면살도 좋은 곳이지만 하나하나 해석해 보면 이해할 수 있다.enumerate()list의 매개 변수에서 반복적으로 지정할 수 있는 대상을 지정하면 색인 번호와 요소를 얻을 수 있습니다.chr근거파이썬 공식 참조
유니코드 코드점이 정수 i인 문자를 나타내는 문자열을 반환합니다.ord근거파이썬 공식 참조
문자를 나타내는 유니코드 코드 점의 정수를 반환합니다.
잘 모르겠지만 문자열을 캐릭터 코드로 변환한 후+(i % 10)이기 때문에 더 복잡한 암호화 처리를 위한 것으로 여겨지기 때문에 반대로 조작하면 된다(잡다)
답은 다음과 같다.
질문 1의 답안
encrypted_text = "sfeuiyC;iAc89895j78>6b:5h8j<8=89:;95j@9"
text= ""

for i, v in enumerate(encrypted_text):
# 復号するため-(i % 10)とした
    text += chr(ord(v)-(i % 10))

print(text)
참조 소스: 간단한 암호화 정보
문제2 꼭 사용해 보세요Envader.

배운 것


비밀번호 기초를 배우러 왔는데 파이썬 기초를 배우지 못했어요.
프로그램의 어디에서 복잡한 처리를 하는지 알면 풀 수 있을 것 같다.
안전에 더해 특히 비밀번호를 배울 때 파이톤을 깊이 이해하는 것이 필수적인 기술인 만큼 현재 열심히 공부하고 있다.

참고 자료


https://qiita.com/okkn/items/54e81346d8f35733ab5e
https://note.nkmk.me/python-enumerate-start/

지금까지 배운 기본 보안


https://zenn.dev/terralien/articles/4f8446bae35e1f
https://zenn.dev/terralien/articles/1ac2eb63810101

자유 이미지


https://pixabay.com/images/id-5723449/

좋은 웹페이지 즐겨찾기