봉자씨
친절한 봉자씨의 딥러닝 이야기
봉자씨
전체 방문자
오늘
어제
  • 분류 전체보기 (144)
    • 개발 (25)
      • 딥러닝 단어장 (2)
      • MLOps (6)
      • 딥러닝, Computer Vision (3)
      • Pytorch (0)
      • Develop (5)
      • Kubernetes (4)
      • 대학원생의 좌충우돌 GPU 클러스터 구축기 (3)
      • LangChain (1)
    • 경제 (115)
      • 경제 용어 단어장 (0)
      • 경제일기 (113)

인기 글

최근 글

블로그 메뉴

  • 홈
  • 태그
  • Github

공지사항

최근 댓글

태그

  • Kubeflow
  • AI
  • MLOps
  • kubectl
  • 인플레이션
  • 자이언트스탭
  • 금리동결
  • ChatGPT
  • 장단기금리차
  • 금리인상
  • 부동산
  • Kubernetes
  • fomc
  • 경제일기
  • kserve
  • CPI
  • 금리인하
  • SVB
  • k8s
  • 금리
  • 경기침체
  • 은행파산
  • 채권
  • 중국리오프닝
  • SVB파산
  • 위스키
  • 빅스탭
  • 주식
  • 딥러닝
  • 대출부실

티스토리

250x250
hELLO · Designed By 정상우.
봉자씨

친절한 봉자씨의 딥러닝 이야기

개발/Develop

008. PyArmor로 코드 난독화 하기

2021. 8. 2. 15:49
반응형

코드 난독화는 배포해야하는 python 코드를 읽기 어렵게 만들어서 그대로 배끼지 못하게하는 최소한의 보안입니다.
여러 난독화, 암호화 방법중에 OpenSource 중 하나인 PyArmor를 사용해서 난독화를 진행해보겠습니다.
 
 
설치

pip install pyarmor

설치는 위처럼 PIP를 사용하면 간단하게 설치가 가능합니다.
 
PyArmor은 단순히 파일 하나만을 난독화 할 수도있고 한 패키지 전체를 난독화 할 수도 있습니다.
기본적인 사용법은 다음과 같습니다.

pyarmor obfuscate myscript.py

pyarmor는 myscript와 같은 폴더에있는 모든 *.py파일을 dist폴더에 난독화하여 생성합니다.
 
 
다음은 패키지를 난독화 해보겠습니다.
 
프로젝트 구조

myproject/
	mypackage/
		code.py
		main.py
		hello.py
	test/
		main_test.py
    dist/
    build/
    LICENSE
    README.md
    requirements.txt
    setup.py

프로젝트 패키지 단위로 난독화하는 경우 mypackage만 난독화를 진행하고 나머지 파일을 난독화된 dist로 복사후 build하는 방식으로 진행합니다.
 
1. 난독화

pyarmor init --src mypackage --entry mypackage/main.py --type pkg build/mypackage
cd build/mypackage
pyarmor build --force -O .

mypackage의 모든 파일을 build/ 아래로 난독화 시킵니다.
 
2. setup.py 실행

cp ../../mypackage/setup.py ../../mypackage/LICENSE ../../mypackage/README.md ../../requirements.txt mypackage/
cd mypackage
python setup.py bdist_wheel -d ../dist # make wheel

기타 setup에 필요한 파일을 build에 복사한 후 dist폴더로 빌드를 진행합니다.
 
 

반응형
저작자표시 동일조건 (새창열림)

'개발 > Develop' 카테고리의 다른 글

021. VHS: CLI 명령을 GIF 데모영상으로 만들어주는 툴  (0) 2022.11.01
009. Heroku에 Sphinx Docs배포하기  (0) 2021.08.18
005. Ubuntu Apache2 http접속 redirect 하기  (0) 2021.03.18
003. Ubuntu NetPlan으로 고정 IP 설정하기  (0) 2021.02.16
    '개발/Develop' 카테고리의 다른 글
    • 021. VHS: CLI 명령을 GIF 데모영상으로 만들어주는 툴
    • 009. Heroku에 Sphinx Docs배포하기
    • 005. Ubuntu Apache2 http접속 redirect 하기
    • 003. Ubuntu NetPlan으로 고정 IP 설정하기
    봉자씨
    봉자씨
    인공지능, 딥러닝, MLOps 이야기로 여러분을 찾아갑니다!

    티스토리툴바