본문 바로가기
프로그래밍/PYTHON

[Python] 파이썬 프로그램 배포시 인증키(시디키,키맵)삽입

by 루티즈 2020. 7. 17.
반응형

파이썬으로 작성된 프로그램을 배포할 때 인증키를 집어넣는 가장 간단한 방식을 설명한다. 물론 실제 사용을 위해서는 암호화 작업이나 필요에 따라서 인증 서버를 구축할 필요가 있지만 가장 단순하게 하드 코딩을 해서 인증키를 집어넣고 배포파일(exe)만 제공하더라도 원하는 기능을 할 수 있다.

main.py

from datetime import datetime

if __name__ == "__main__":
    d = datetime.today().strftime("%Y%m%d")
    intd = int(d)

    with open("cdkey.txt", mode="r") as file:
        lines = file.read()
        print(lines)

    cdkey = lines
    keyCheck = False

    if cdkey == '19as-asw2-wq2d-d2da':
        keyCheck= True
    elif intd >= 20200716 and intd < 20200720:
        if cdkey != '19as-asw2-wq2d-d2da':
            keyCheck = False
    elif intd >= 20200720 and intd < 20200820:
        if cdkey != '2323-asw2-wq2d-d2da':
            keyCheck = False
    elif intd >= 20200820 and intd < 20200920:
        if cdkey != '4242-asw2-2132-2222':
            keyCheck = False
    elif intd >= 20200920 and intd < 20201020:
        if cdkey != '5646-asw2-wq2d-3333':
            keyCheck = False
    elif intd >= 20201020 and intd < 20201120:
        if cdkey != '6655-asw2-wq2d-4444':
            keyCheck = False

    if keyCheck == False:
        exit()

    print('올바른 CD Key 입니다. 프로그램을 시작합니다.')
    c = input()

코드 내용은 다음과 같다. 

'cdkey.txt' 파일을 읽어서 안에 씨디키를 확인한 다음 제대로된 씨디키 일 경우 프로그램을 시작하는 구조이다. 그리고 현재 일자를 확인하여 한달 단위로 각 씨디키가 다르게 설정하였다. 따라서 만일 10월 21 경 에 현재 프로그램을 사용하고 싶을 경우 '6655-asw2-wq2d-4444' 값이 'cdkey.txt'안에 들어가 있어야 프로그램이 정상적으로 작동할 것이다.

프로그램 배포

프로그램 배포는 pyinstaller 를 사용하였다.

프로그램 배포 사용 명령어는 다음과 같다. py 파일이 위치한 곳에서 pyinstaller 를 실행 하면된다.

( main.py : 파이썬 파일

main.exe: 만들어질 실행파일 )

만일 정상적으로 배포 파일이 만들어 질 경우 다음과 같은 메시지가 나올 것이다.

그리고 현재 실행 폴더에 build 폴더와 dist 폴더가 생긴다. dist 폴더 내에 있는 .exe 파일이 현재 배포 파일이다.

만들어진 배포파일이 제대로 작동하는 지 확인 해 보면

다음과 같이 나오면 제대로 작동하는 것을 알 수 있다.

반응형