Python / / 2025. 1. 3. 18:55

파이썬 코드 암호화 알고리즘

간단하게 파이썬 코드를 암호화 하고, exe 실행파일로 만들어 디컴파일을 막을 수 있도록 한다.

 

import 항목은 기존 소스코드에 포함된 import를 이용. 

 

복호화가 굉장히 쉽기 때문에 간단한 암호화 알고리즘 방식을 채택했다.

 

from cryptography.fernet import Fernet
import base64

def protect_code():
    # 1. 원본 파일 그대로 읽기
    with open('test.py', 'r', encoding='utf-8') as f:
        source = f.read()
       
    # 2. 암호화 키 생성
    key = Fernet.generate_key()
    cipher = Fernet(key)
       
    # 3. 소스코드 암호화
    encrypted = cipher.encrypt(source.encode())
       
    # 4. 필요한 모든 import를 포함한 wrapper 생성
    wrapper = f"""
import json
import sys
import os
 

KEY = {key}
CODE = {encrypted}

if __name__ == '__main__':
    cipher = Fernet(KEY)
    exec(cipher.decrypt(CODE))
"""
       
    # 5. 파일 저장
    with open('test_encrypted.py', 'w', encoding='utf-8') as f:
        f.write(wrapper)

protect_code()

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유