파이썬 암호화 코드 과정 질문

조회수 741회

import random

def addPadding(data):
    if (len(data)%8 == 0):
        return data
    else:
        return data.ljust(len(data) + (len(data) % 8), '0')

def makeBlock(data):
    buf = []
    for i in range(0,4):
        sbuf = []
        for j in range(0,8):
            sbuf.append(ord(data[i*8+j]))

        buf.append(sbuf)
    return buf

if __name__ == "__main__":
    f = open("./plain.txt", "r")
    data = f.readline()

    data = addPadding(data)
    buf = makeBlock(data)
    encrypt = ''

    key1 = random.randint(0, 20)
    key2 = random.randint(7, 21)

    for i in range(0, 4):
        k1 = key1
        k2 = key2
        sbuf = ''
        for j in range(0, len(buf[i]), 2):
            encrypt += chr(buf[i][j] - k1)
            encrypt += chr(buf[i][j+1] + k2)
            k1 += 1
            k2 += 1

    f = open("./encrypted.txt", "w")
    f.write(encrypt.encode('hex').upper())
    f.close()


이 코드의 암호화 과정이 어떻게 되는 건가요? 파이썬을 오랜만에 손대서 기억이 안 나네요.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 과정은 직접 분석해보면 되는 것이고...분석하다 궁금한 것은 이곳에 질문 하시면 됩니다. 정영훈 2018.9.6 00:28
  • 블록별로 끝에 print() 넣어서 콘솔에 다 뿌려보세요 그러면 과정을 볼 수 있겠지요. 엽토군 2018.9.6 10:36
  • 무엇이 궁금한건지 좀 더 구체적으로 적어야 하지 않을까 합니다. dbwodlf3 2018.9.6 11:29

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)