>  기사  >  백엔드 개발  >  암호화된 Python 소스 코드 솔루션 PyArmor

암호화된 Python 소스 코드 솔루션 PyArmor

WBOY
WBOY앞으로
2023-05-05 15:01:062398검색

加密Python源码方案 PyArmor

Python 소스 코드에는 다양한 암호화 방식이 있습니다. 이제 PyArmor가 Python을 암호화하는 방법을 알아 보겠습니다.

1. PyArmor 소개

  • PyArmor는 Python 스크립트를 난독화하는 데 사용되는 명령줄 도구입니다. 난독화된 스크립트를 고정된 시스템에 바인딩하거나 난독화된 스크립트를 만료시키고 일정 시간이 지나면 사용할 수 없게 만듭니다. .
  • pyarmor -h를 통해 사용법을 확인할 수 있습니다. 아래 설명을 위해 일부만 차단합니다.
(tt) PS C:test> pyarmor -h
usage: pyarmor [-h] [-v] [-q] [-d] [--home HOME] [--boot BOOT]...
optional arguments:
-h, --help show this help message and exit
-v, --versionshow program's version number and exit
-q, --silent Suppress all normal output
-d, --debugPrint exception traceback and debugging message
--home HOMEChange pyarmor home path
--boot BOOTChange boot platform
The most commonly used pyarmor commands are:
obfuscate (o) Obfuscate python scripts
licenses (l) Generate new licenses for obfuscated scripts
pack (p) Pack obfuscated scripts to one bundle
init (i) Create a project to manage obfuscated scripts
config (c) Update project settings
build (b)Obfuscate all the scripts in the project
info Show project information
checkCheck consistency of project
hdinfo Show all available hardware information
benchmarkRun benchmark test in current machine
register Make registration keyfile work
download Download platform-dependent dynamic libraries
runtimeGenerate runtime package separately
help Display online documentation
See "pyarmor <command> -h" for more information on a specific command.
More usage refer to https://pyarmor.readthedocs.io

(1) pyarmor

  1. obfuscate 명령을 사용하여 스크립트를 암호화합니다.
  2. licenses 명령을 사용하여 암호화된 스크립트에 대한 새 라이센스 파일인 License.lic을 생성합니다. 암호화된 스크립트의 사용 기간을 설정하거나 특정 시스템에서 스크립트 사용을 제한해야 하는 경우 다음을 생성해야 합니다. 새 라이센스 파일을 만들고 새 라이센스 파일로 암호화합니다.
  3. 전체 Python 패키지를 암호화할 수 있습니다.
  4. 을 pyinstaller와 함께 사용하여 Python 프로젝트를 독립적으로 실행 가능한 설치 패키지로 패키징할 수 있습니다.
  5. 암호화된 스크립트의 보안을 더욱 향상시키기 위해 제공되는 솔루션 중 일부를 사용할 수도 있습니다. 실제 프로젝트에 필요한 경우 공식 웹사이트를 확인하세요.

2. 사용 예

(1) 설치

pip install pyarmor -i https://pypi.douban.com/simple/
-i https://pypi.douban.com/simple/ 是使用国内的豆瓣源,提升安装速度,具体可参见我的其他文章。

(2) 일반 암호화

# module1.py内容如下
def module1_func1():
print("I'm module1.py")
return 
# main.py内容如下
import module1
print("I'm main.py")
module1.module1_func1()。

암호화하려면 pyarmor o main.py 명령을 실행하세요.

PyArmor는 동일한 디렉터리에 있는 main.py와 모든 *.py 파일을 암호화하고 암호화 스크립트를 실행하는 데 필요한 모든 파일이 포함된 dist 폴더를 생성합니다. 기본 프로세스:

  1. 생성 출력 하위 디렉터리 dist.
  2. 암호화된 메인 스크립트 main.py를 생성하고 출력 디렉터리 dist에 저장합니다.
  3. 동일한 디렉터리에 있는 다른 모든 *.py 파일을 암호화하고 출력 디렉터리 dist에 저장합니다.
  4. 암호화 스크립트를 실행하는 데 필요한 모든 보조 파일을 생성하고 출력 디렉터리 dist에 저장합니다.

확인: dist 디렉터리인 python main.py로 이동합니다.

암호화된 파일은 다음과 같습니다.

from pytransform import pyarmor_runtime
pyarmor_runtime()
__pyarmor__(__name__, __file__, b'x50x59x41x52x4dx4fx52x00x00x03x08x00x55x0dx0dx0ax09x33xe0x02x00x00x00x00x01x00x00x00x40x00x00x00x63x01x00x00x00x00x00x18x26xa4x75x12x0cx32x8fxd9xa6xf8x0ax0bx17x1exc7xfex00x00x00x00x00x00xx22x0cxa0x75x0cx1ax13x8ax26xb4x02x46x1bx8cx5dxafxd0x81xc2x22x59xc0x1dxd2x83x99x01x09xb1x78x4cxdcx58x9bxdfx17xd9xe9x07xa4xa7xc6x51xdexaax20xbfx7cx43xbbx83x87xafx82x9ex65x2dxaexb9x5bx14xfcxf8x1dxc7x09xe5x65xa7x8dx5ax62x9dx78xa3x82x4cx53x17xc9x3ax15xa4xe7x66xdax3fxf2x9d', 2)
还会根据不同平台生成相关依赖:在pytransform文件夹下,例如windows生成相关.dll,linux生成.so等。

(3) 라이선스를 사용한 암호화

1.生成新的许可文件
pyarmor l -e 2022-09-09 test01
执行这条命令会生成一个带有效期的认证文件: 创建license.lic与license.lic.txt,保存在licenses/test01目录下
2.使用新生成的许可文件加密脚本
pyarmor o --with-license .licensestest01license.lic main.py
3.同样可以在dist目录下找到相关,此时如果过期了,则会提示:License is expired

(4) 고정된 머신에 바인딩할 수도 있습니다

1.在该机器上运行命令获取硬件信息
pyarmor hdinfo
2.然后生成绑定的固定机器的许可文件
pyarmor l --bind-disk "100304PBN2081SF3NJ5T" --bind-mac "20:c1:d2:2f:a0:96" code-002
3.使用这个许可文件加密脚本,加密脚本就只能在指定机器上运行
pyarmor o --with-license licenses/code-002/license.lic main.py

자세한 사용 방법은 해당 공식을 참조하세요. 웹사이트 :
https://pyarmor.readthedocs.io/en/latest/.

위 내용은 암호화된 Python 소스 코드 솔루션 PyArmor의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제