Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
単一の Python スクリプトまたはプロジェクト ZIP を .pyz に暗号化し、今回のキーに対応する Linux 実行ファイルを同梱します。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
pyconcrete は Python モジュールを暗号化バイトコードに変換し、対応する実行コンポーネントが import または起動時に復号して実行します。本ツールは単一の .py またはプロジェクト ZIP を受け付け、暗号化 .pyz、実行ファイル、関連ファイルをまとめて返します。実行ファイルは今回の処理で使うキーに対応するため、別プロジェクト用のものと交換できません。
現在の出力対象は Linux x86_64 と CPython 3.12 です。プロジェクト ZIP にはルートの __main__.py を含めるか、package.module:function 形式の入口を指定します。サードパーティー依存関係は実行先で別途用意してください。暗号化はソースを気軽に読む難度を上げますが、実行時にはコードとキーが必要なため、絶対的な解析防止にはなりません。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
単一の .py、またはパッケージ構成、リソース、入口モジュールを保った ZIP を選びます。ルートに __main__.py を含めるか、呼び出し可能な関数を入口として準備してください。
ZIP にルートの入口がない場合は、myapp.cli:main のような package.module:function を入力します。モジュールパスと関数名がアーカイブ内に存在し、起動時に呼び出せる必要があります。
ページにはアカウント別のアップロード上限が表示されます。ファイルは分離されたクラウド環境で処理され、今回のキーに対応した暗号化アーカイブと実行ファイルが作成されます。ビルド要件、入口、構成に問題があると失敗します。
パッケージを展開し、CPython 3.12 を備えた Linux x86_64 環境で実行します。同梱されないサードパーティー依存関係を準備し、リソースパス、起動方法、実際の処理を確認してください。
活用例
仕事や日常の流れの中での活用方法を紹介します。
入口とリソースを整理したスクリプトをパッケージ化し、バージョン管理されたリリースとして Linux x86_64 の利用者に暗号化アーカイブと対応ランナーを配布できます。
保守担当者は平文モジュールの直接配布を減らし、CPython バージョン、CPU アーキテクチャ、依存関係の準備、起動入口をリリース情報に記載できます。
リリース担当者は小さな例で入口検出、アーカイブ構成、ランナー起動、リソース検索を確認し、自社のデプロイスクリプトへ組み込む方法を検討できます。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
提供される実行ファイルはその OS アーキテクチャとインタープリター向けです。他の Python、Windows/macOS、ARM では互換性がないことがあります。実際の配置先に合った実行環境を別途準備してください。
必須ではありません。ルートに __main__.py がない場合は package.module:function の入口を指定します。モジュールと関数が実際に存在しないとビルドや起動が失敗します。
自動インストールされません。プロジェクトコードとリソースは出力に含められますが、外部依存関係は対象環境で準備し、CPython、OS、パッケージのバージョン互換性を確認してください。
防げません。実行時にはコードとキーが必要であり、実行環境を管理できる人は分析できる可能性があります。暗号化は手間を増やしますが、認可設計、秘密情報管理、サーバー側の制御の代わりにはなりません。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
付属ランナーは Linux x86_64 と CPython 3.12 を対象にしています。ビルドは pyconcrete とネイティブコンパイルツールに依存し、実行にはプロジェクトの外部ライブラリーやシステム依存関係も必要です。本番に近いシステムイメージで起動、データパス、異常終了、更新方法を事前に確認してください。
キーとランナーは一組です。出力パッケージの配布を管理し、関係のないプロジェクトで同じランナーを使わないでください。暗号化・難読化は解析コストを高めますが、経験者がコードやキーを取得できない保証はありません。所有または許可されたソースのみを処理し、実際のアクセス制御はサーバー側で行ってください。
関連
関連ツール、特集、利用可能なAPIを探せます。