paozip マニュアル - ソースコード暗号化ツール
マニュアル
PaoZip Studio(コンパイル型言語 統合保護ツール)と、インタプリタ型言語の個別製品があります。
ご利用の製品・言語に応じたマニュアルをご参照ください。
PaoZip Studio マニュアル
コンパイル型言語 統合保護ツール — .NET, Java, Go, C/C++, Dart/Flutter, Kotlin, Rust, Swift
paozip for PHP マニュアル
PHP ソースコード暗号化ツールのインストール・設定・使い方
paozip for Python マニュアル
Python ソースコード暗号化ツールのインストール・設定・使い方
paozip for Ruby マニュアル
Ruby ソースコード暗号化ツールのインストール・設定・使い方
paozip for Node.js マニュアル
Node.js ソースコード暗号化ツールのインストール・設定・使い方
paozip for Perl マニュアル
Perl ソースコード暗号化ツールのインストール・設定・使い方
paozip for R マニュアル
R ソースコード暗号化ツールのインストール・設定・使い方
PHP版 クイックリファレンス
インストール
# 1. paozip.so を PHP拡張ディレクトリに配置
cp paozip.so $(php -i | grep extension_dir | awk '{print $NF}')
# 2. php.ini に追加
extension=paozip.so
paozip.enable=1
# 3. PHP を再起動
systemctl restart php-fpm # または apache を再起動
暗号化と実行
# ソースコードを暗号化
php -r "echo paozip_encrypt(file_get_contents('secret.php'));" > secret.php
# そのまま実行可能(暗号化されていても動作する)
php secret.php
提供関数
| 関数名 | 説明 | 戻り値 |
paozip_encrypt($data) | 文字列を暗号化 | string |
paozip_is_licensed() | ライセンス版かどうか | bool |
paozip_get_license_email() | ライセンスメールアドレス | string |
paozip_get_product_info() | 製品情報(連想配列) | array |
php.ini 設定
| 設定名 | 値 | 説明 |
paozip.enable | 0 / 1 | 暗号化ファイルの透過的読み込みを有効にする(既定: 0) |
動作の仕組み
paozip.enable=1 を設定すると、PHPのコンパイルフックが有効になります。
PHPがファイルを読み込む際、先頭に paozip のマジックバイトがあれば自動的に復号してから実行します。
暗号化されていないファイルは従来通りそのまま実行されます。
Python版 クイックリファレンス
セットアップ
製品版に同梱されている paozip パッケージをプロジェクトに配置してください。
C拡張モジュール(_paozip.so / _paozip.pyd)が含まれています。
暗号化と実行
# ソースコードを暗号化(.py → .pye)
paozip encrypt secret.py
# ラッパースクリプト経由で実行
# app.py の先頭に以下を記述:
import paozip
paozip.install_importer()
import secret # ← secret.pye が透過的に読み込まれる
# CLI で直接実行することも可能
paozip run secret.pye
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.py> | ファイルを暗号化(.pye を生成) |
paozip decrypt <file.pye> | ファイルを復号(元の .py に戻す) |
paozip run <file.pye> | 暗号化ファイルを直接実行 |
paozip check <file.pye> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数/メソッド | 説明 | 戻り値 |
paozip.encrypt(data) | バイトデータを暗号化 | bytes |
paozip.decrypt(data) | 暗号化データを復号 | bytes |
paozip.encrypt_file(path, out) | ファイルを暗号化(.pye) | None |
paozip.install_importer() | .pye importフックを登録 | None |
paozip.is_licensed() | ライセンス版かどうか | bool |
paozip.get_license_email() | ライセンスメールアドレス | str |
paozip.get_product_info() | 製品情報(辞書) | dict |
重要な注意事項
.pye ファイルは python file.pye では直接実行できません。ラッパースクリプト経由か paozip run で実行してください。
install_importer() はスクリプトのトップレベルに記述してください。if __name__ == "__main__": の中では正しく動作しません。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Dart/Flutter版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-dart パッケージをビルドしてください。
Pure Dart実装のため、追加のCコンパイラやライブラリは不要です。
# CLIバイナリをビルド
cd paozip-dart
dart pub get
dart compile exe bin/paozip.dart -o paozip
暗号化と復号
# ソースコードを暗号化(.dart → .darte)
paozip encrypt secret.dart
# ビルド時に復号
paozip decrypt secret.darte
# コンパイル
dart compile exe main.dart
# または flutter build apk
# 復号ファイルを削除
rm secret.dart
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.dart> | ファイルを暗号化(.darte を生成) |
paozip decrypt <file.darte> | ファイルを復号(元の .dart に戻す) |
paozip check <file.darte> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数/メソッド | 説明 | 戻り値 |
encrypt(data) | バイトデータを暗号化 | Uint8List |
decrypt(data) | 暗号化データを復号 | Uint8List |
encryptFile(path) | ファイルを暗号化(.darte) | String |
decryptFileTo(path) | ファイルを復号して書き出し | String |
isEncryptedFile(path) | 暗号化チェック | bool |
重要な注意事項
- Dartはコンパイル言語のため、
runコマンドはありません。ビルド時に復号→コンパイル→削除のワークフローを利用してください。
- 暗号化キーは
.paozip_key ファイルまたは PAOZIP_KEY 環境変数で設定してください。
.paozip_key ファイルは絶対にGitリポジトリにコミットしないでください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
.NET版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-dotnet パッケージをビルドしてください。
Pure C#実装のため、追加のネイティブライブラリは不要です。
# CLIバイナリをビルド
cd paozip-dotnet
dotnet restore
dotnet publish Paozip.Cli/Paozip.Cli.csproj -c Release -o out
ソースコード暗号化(方式C)
# ソースコードを暗号化(.cs → .cse)
paozip encrypt secret.cs
# ビルド時に復号
paozip decrypt secret.cse
# コンパイル
dotnet build
# または dotnet publish
# 復号ファイルを削除
rm secret.cs
アセンブリ暗号化(方式E - protect コマンド)
コンパイル済みの .NET exe ファイルを丸ごと暗号化します。
ILSpy等の逆コンパイラで元のソースコードを一切見ることができなくなります。
暗号化キーの管理は不要です(毎回ランダム生成してランチャーに埋め込み)。
# exeファイルを暗号化保護
paozip protect MyApp.exe
# 出力先を指定
paozip protect MyApp.exe -o MyApp.protected.exe
# プロジェクトファイルで保護
paozip protect -p project.paoproj
CLIコマンド
| コマンド | 説明 |
paozip protect <file.exe> | exeファイルを暗号化保護(方式E) |
paozip protect <file.exe> -o <output.exe> | 出力先を指定して保護 |
paozip protect -p <file.paoproj> | プロジェクトファイルで保護 |
paozip encrypt <file.cs> | ソースファイルを暗号化(方式C) |
paozip decrypt <file.cse> | ファイルを復号(元の .cs に戻す) |
paozip check <file.cse> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API(ソースコード暗号化)
| メソッド | 説明 | 戻り値 |
Paozip.Encrypt(data) | バイトデータを暗号化 | byte[] |
Paozip.Decrypt(data) | 暗号化データを復号 | byte[] |
Paozip.EncryptFile(path) | ファイルを暗号化(.cse) | string |
Paozip.DecryptFileTo(path) | ファイルを復号して書き出し | string |
Paozip.IsEncryptedFile(path) | 暗号化チェック | bool |
API(アセンブリ暗号化 - Paozip.Protector)
| メソッド | 説明 | 戻り値 |
ProtectionEngine.Protect(options, progress) | exeを同期で暗号化保護 | ProtectionResult |
ProtectionEngine.ProtectAsync(options, progress) | exeを非同期で暗号化保護 | Task<ProtectionResult> |
AssemblyInspector.Inspect(path) | PE解析(フレームワーク・タイプ数) | AssemblyInfo |
ProjectFile.Load(path) | .paoprojファイル読み込み | ProtectionOptions |
ProjectFile.Save(path, options) | .paoprojファイル保存 | void |
重要な注意事項
- ソースコード暗号化(方式C): ビルド時に復号→コンパイル→削除のワークフローを利用してください。暗号化キーは
.paozip_key で管理します。
- アセンブリ暗号化(方式E): 暗号化キーの管理は不要です。毎回ランダムに生成され、ランチャーに自動的に埋め込まれます。
- アセンブリ暗号化は現在 .NET Framework 4.x(WinForms / WPF)に対応しています。Visual Studio 2017/2019/2022 の Roslyn コンパイラ(csc.exe)が必要です。
- PaoZip Studio は WPF 製のため Windows 専用です。CLI の protect コマンドも同じ機能を提供します。
PaoZip Studio クイックリファレンス
概要
PaoZip Studio は、.NET アセンブリ暗号化のための WPF デスクトップ GUI アプリケーションです。
コンパイル済みの .exe ファイルをドラッグ&ドロップで簡単に暗号化保護できます。
起動方法
# ソリューションからビルド&起動
cd paozip-dotnet
dotnet run --project Paozip.Studio
使い方
- 入力アセンブリ欄で .exe ファイルを選択(または画面にドラッグ&ドロップ)
- アセンブリ情報(フレームワーク、サブシステム、サイズ、タイプ数)が自動表示されます
- 出力パスは自動設定されます(変更も可能)
- 「Protect!」ボタンをクリック
- 保護ログがリアルタイムに表示され、完了すると保護済み exe が生成されます
機能
| 機能 | 説明 |
| ダーク/ライトテーマ | 設定メニューから切替可能 |
| 日本語/英語切替 | 設定メニューから切替可能 |
| プロジェクトファイル | .paoproj ファイルで設定を保存・再利用 |
| ドラッグ&ドロップ | .exe または .paoproj ファイルをドロップで読み込み |
| .config コピー | app.config ファイルを自動コピー(オプション) |
| 依存関係コピー | DLL等の依存ファイルを出力先にコピー(オプション) |
| キーボードショートカット | Ctrl+N(新規)/ Ctrl+O(開く)/ Ctrl+S(保存) |
プロジェクトファイル (.paoproj)
{
"version": "1.0",
"input": "bin\\Release\\MyApp.exe",
"output": "bin\\Release\\MyApp.protected.exe",
"copyConfig": true,
"copyDependencies": false
}
パスはプロジェクトファイルからの相対パスで保存されるため、ポータブルに利用できます。
保護結果の確認
保護済み exe を ILSpy や dotPeek で開いてみてください。
元のソースコードは一切表示されず、ランチャーの数クラスのみが表示されます。
保護前後のタイプ数の変化がログに表示されます(例: 124 Types → 7 Types)。
Java版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-java パッケージをビルドしてください。
Pure Java実装のため、追加のネイティブライブラリは不要です。
# Maven でビルド
cd paozip-java
mvn clean package
暗号化と復号
# ソースコードを暗号化(.java → .javae)
paozip encrypt secret.java
# ビルド時に復号
paozip decrypt secret.javae
# コンパイル
javac *.java
# または mvn package / gradle build
# 復号ファイルを削除
rm secret.java
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.java> | ファイルを暗号化(.javae を生成) |
paozip decrypt <file.javae> | ファイルを復号(元の .java に戻す) |
paozip check <file.javae> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| メソッド | 説明 | 戻り値 |
Paozip.encrypt(data) | バイトデータを暗号化 | byte[] |
Paozip.decrypt(data) | 暗号化データを復号 | byte[] |
Paozip.encryptFile(path) | ファイルを暗号化(.javae) | String |
Paozip.decryptFileTo(path) | ファイルを復号して書き出し | String |
Paozip.isEncryptedFile(path) | 暗号化チェック | boolean |
重要な注意事項
- Javaはコンパイル言語のため、
runコマンドはありません。ビルド時に復号→コンパイル→削除のワークフローを利用してください。
- 暗号化キーは
.paozip_key ファイルまたは PAOZIP_KEY 環境変数で設定してください。
.paozip_key ファイルは絶対にGitリポジトリにコミットしないでください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Kotlin版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-kotlin パッケージをビルドしてください。
Pure Kotlin実装のため、追加のネイティブライブラリは不要です。
# Gradle でビルド
cd paozip-kotlin
gradle jar
暗号化と復号
# ソースコードを暗号化(.kt → .kte)
paozip encrypt secret.kt
# ビルド時に復号
paozip decrypt secret.kte
# コンパイル
kotlinc *.kt -include-runtime -d app.jar
# または gradle build
# 復号ファイルを削除
rm secret.kt
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.kt> | ファイルを暗号化(.kte を生成) |
paozip decrypt <file.kte> | ファイルを復号(元の .kt に戻す) |
paozip check <file.kte> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| メソッド | 説明 | 戻り値 |
Paozip.encrypt(data) | バイトデータを暗号化 | ByteArray |
Paozip.decrypt(data) | 暗号化データを復号 | ByteArray |
Paozip.encryptFile(path) | ファイルを暗号化(.kte) | String |
Paozip.decryptFileTo(path) | ファイルを復号して書き出し | String |
Paozip.isEncryptedFile(path) | 暗号化チェック | Boolean |
重要な注意事項
- Kotlinはコンパイル言語のため、
runコマンドはありません。ビルド時に復号→コンパイル→削除のワークフローを利用してください。
- 暗号化キーは
.paozip_key ファイルまたは PAOZIP_KEY 環境変数で設定してください。
.paozip_key ファイルは絶対にGitリポジトリにコミットしないでください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
C/C++版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-cpp パッケージをビルドしてください。
zlib ライブラリが必要です。
# ビルド
cd paozip-cpp
make
# インストール(オプション)
sudo make install
方式C: ビルド時復号
ソースコードを保護する場合に使用します。
# ソースコードを暗号化(.c → .ce, .cpp → .cppe)
paozip encrypt secret.c
# ビルド時に復号
paozip decrypt secret.ce
# コンパイル
gcc -c secret.c -o secret.o
# 復号ファイルを削除
rm secret.c
方式D: リンク時復号
秘密データを実行ファイルに埋め込む場合に使用します。
# 秘密データを暗号化して埋め込みコード生成
paozip embed secrets.txt -n secrets -o embedded.c
# プロジェクトにコンパイル・リンク
gcc -c embedded.c main.c
gcc main.o embedded.o -lpaozip -lz -o myapp
# 実行時に paozip_decrypt() で復号
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.c> | ファイルを暗号化(.ce / .cppe を生成) |
paozip decrypt <file.ce> | ファイルを復号(元の .c / .cpp に戻す) |
paozip embed <file> -n name | 埋め込みコードを生成 |
paozip check <file.ce> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数 | 説明 | 戻り値 |
paozip_encrypt() | バイトデータを暗号化 | int |
paozip_decrypt() | 暗号化データを復号 | int |
paozip_encrypt_file() | ファイルを暗号化 | int |
paozip_decrypt_file() | ファイルを復号 | int |
paozip_generate_embed() | 埋め込みコード生成 | int |
paozip_is_encrypted_file() | 暗号化チェック | int |
重要な注意事項
- C/C++はコンパイル言語のため、
runコマンドはありません。ビルド時復号(方式C)またはリンク時復号(方式D)を利用してください。
- 方式Dでは、静的ライブラリ(libpaozip.a)と zlib をリンクする必要があります。
- 暗号化キーは
.paozip_key ファイルまたは PAOZIP_KEY 環境変数で設定してください。
.paozip_key ファイルは絶対にGitリポジトリにコミットしないでください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Go版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-go パッケージをビルドしてください。
Pure Go実装のため、CGo は不要です。
# CLIバイナリをビルド
cd paozip-go
go build -o paozip ./cmd/paozip
暗号化と復号
# ソースコードを暗号化(.go → .goe)
paozip encrypt secret.go
# ビルド時に復号
paozip decrypt secret.goe
# コンパイル
go build -o myapp .
# 復号ファイルを削除
rm secret.go
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.go> | ファイルを暗号化(.goe を生成) |
paozip decrypt <file.goe> | ファイルを復号(元の .go に戻す) |
paozip check <file.goe> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数 | 説明 | 戻り値 |
paozip.Encrypt(data, key) | バイトデータを暗号化 | []byte, error |
paozip.Decrypt(data, key) | 暗号化データを復号 | []byte, error |
paozip.EncryptFile(path, output, key) | ファイルを暗号化(.goe) | string, error |
paozip.DecryptFileTo(path, output, key) | ファイルを復号して書き出し | string, error |
paozip.IsEncryptedFile(path) | 暗号化チェック | bool, error |
重要な注意事項
- Goはコンパイル言語のため、
runコマンドはありません。ビルド時に復号→コンパイル→削除のワークフローを利用してください。
- 暗号化キーは
.paozip_key ファイルまたは PAOZIP_KEY 環境変数で設定してください。
.paozip_key ファイルは絶対にGitリポジトリにコミットしないでください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Ruby版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-ruby パッケージをインストールしてください。
Pure Ruby実装のため、C拡張のコンパイルは不要です。
# Gem をビルド・インストール
cd paozip-ruby
gem build paozip.gemspec
gem install paozip-*.gem
暗号化と実行
# ソースコードを暗号化(.rb → .rbe)
paozip encrypt secret.rb
# ラッパースクリプト経由で実行
# app.rb の先頭に以下を記述:
require 'paozip'
Paozip.install_importer
require 'secret' # ← secret.rbe が透過的に読み込まれる
# CLI で直接実行することも可能
paozip run secret.rbe
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.rb> | ファイルを暗号化(.rbe を生成) |
paozip decrypt <file.rbe> | ファイルを復号(元の .rb に戻す) |
paozip run <file.rbe> | 暗号化ファイルを直接実行 |
paozip check <file.rbe> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| メソッド | 説明 | 戻り値 |
Paozip.encrypt(data) | バイトデータを暗号化 | String |
Paozip.decrypt(data) | 暗号化データを復号 | String |
Paozip.encrypt_file(path) | ファイルを暗号化(.rbe) | String |
Paozip.install_importer | .rbe requireフックを登録 | nil |
Paozip.licensed? | ライセンス版かどうか | Boolean |
Paozip.get_license_email | ライセンスメールアドレス | String |
Paozip.product_info | 製品情報(ハッシュ) | Hash |
重要な注意事項
.rbe ファイルは ruby file.rbe では直接実行できません。ラッパースクリプト経由か paozip run で実行してください。
install_importer はスクリプトのトップレベルに記述してください。if __FILE__ == $PROGRAM_NAME の中では正しく動作しません。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Node.js版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-nodejs パッケージをインストールしてください。
Pure JavaScript実装のため、ネイティブモジュールのコンパイルは不要です。
# npm でインストール
cd paozip-nodejs
npm install -g .
暗号化と実行
# ソースコードを暗号化(.js → .jse)
paozip encrypt secret.js
# ラッパースクリプト経由で実行
# app.js の先頭に以下を記述:
require('paozip').installImporter();
require('./secret'); // ← secret.jse が透過的に読み込まれる
# CLI で直接実行することも可能
paozip run secret.jse
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.js> | ファイルを暗号化(.jse を生成) |
paozip decrypt <file.jse> | ファイルを復号(元の .js に戻す) |
paozip run <file.jse> | 暗号化ファイルを直接実行 |
paozip check <file.jse> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| メソッド | 説明 | 戻り値 |
paozip.encrypt(data) | バイトデータを暗号化 | Buffer |
paozip.decrypt(data) | 暗号化データを復号 | Buffer |
paozip.encryptFile(path) | ファイルを暗号化(.jse) | string |
paozip.installImporter() | .jse requireフックを登録 | void |
paozip.isLicensed() | ライセンス版かどうか | boolean |
paozip.getLicenseEmail() | ライセンスメールアドレス | string |
paozip.getProductInfo() | 製品情報(オブジェクト) | Object |
重要な注意事項
.jse ファイルは node file.jse では直接実行できません。ラッパースクリプト経由か paozip run で実行してください。
installImporter() はスクリプトのトップレベルに記述してください。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Perl版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-perl パッケージをインストールしてください。
Pure Perl実装のため、XS拡張のコンパイルは不要です。
# CPAN形式でインストール
cd paozip-perl
perl Makefile.PL
make
make install
暗号化と実行
# ソースコードを暗号化(.pm → .ple)
paozip encrypt SecretModule.pm
# ラッパースクリプト経由で実行
# app.pl の先頭に以下を記述:
use Paozip;
Paozip::install_importer();
use SecretModule; # ← SecretModule.ple が透過的に読み込まれる
# CLI で直接実行することも可能
paozip run script.ple
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.pm> | ファイルを暗号化(.ple を生成) |
paozip decrypt <file.ple> | ファイルを復号(元の .pm に戻す) |
paozip run <file.ple> | 暗号化ファイルを直接実行 |
paozip check <file.ple> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数 | 説明 | 戻り値 |
Paozip::encrypt($data) | バイトデータを暗号化 | scalar |
Paozip::decrypt($data) | 暗号化データを復号 | scalar |
Paozip::encrypt_file($path) | ファイルを暗号化(.ple) | string |
Paozip::install_importer() | .ple useフックを登録 | void |
Paozip::is_licensed() | ライセンス版かどうか | bool |
Paozip::get_license_email() | ライセンスメールアドレス | string |
Paozip::get_product_info() | 製品情報(ハッシュリファレンス) | hashref |
重要な注意事項
.ple ファイルは perl file.ple では直接実行できません。ラッパースクリプト経由か paozip run で実行してください。
install_importer() はスクリプトのトップレベルに記述してください。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
R版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-r パッケージをインストールしてください。
Pure R実装のため、C拡張のコンパイルは不要です。
# R CMD INSTALL でインストール
R CMD INSTALL paozip-r/
# または devtools を使用
R -e "devtools::install('paozip-r')"
暗号化と実行
# ソースコードを暗号化(.R → .re)
paozip encrypt secret.R
# ラッパースクリプト経由で実行
# app.R の先頭に以下を記述:
library(paozip)
install_importer()
.paozip_source("secret") # ← secret.re が透過的に読み込まれる
# CLI で直接実行することも可能
paozip run secret.re
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.R> | ファイルを暗号化(.re を生成) |
paozip decrypt <file.re> | ファイルを復号(元の .R に戻す) |
paozip run <file.re> | 暗号化ファイルを直接実行 |
paozip check <file.re> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数 | 説明 | 戻り値 |
encrypt(data, key) | バイトデータを暗号化 | raw |
decrypt(data, key) | 暗号化データを復号 | raw |
encrypt_file(path) | ファイルを暗号化(.re) | character |
install_importer() | .re ソースフックを登録 | invisible |
is_licensed() | ライセンス版かどうか | logical |
get_license_email() | ライセンスメールアドレス | character |
get_product_info() | 製品情報(リスト) | list |
重要な注意事項
.re ファイルは Rscript file.re では直接実行できません。ラッパースクリプト経由か paozip run で実行してください。
install_importer() はスクリプトのトップレベルに記述してください。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Rust版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-rust パッケージをビルドしてください。
Pure Rust実装のため、追加の依存関係は不要です。
# Cargo でビルド・インストール
cd paozip-rust
cargo build --release
cargo install --path .
暗号化と復号
# ソースコードを暗号化(.rs → .rse)
paozip encrypt secret.rs
# ビルド時に復号
paozip decrypt secret.rse
# 通常通りビルド
cargo build --release
# 復号ファイルを削除(セキュリティのため)
rm secret.rs
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.rs> | ファイルを暗号化(.rse を生成) |
paozip decrypt <file.rse> | ファイルを復号(元の .rs に戻す) |
paozip check <file.rse> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数 | 説明 | 戻り値 |
paozip::encrypt(data, key) | バイトデータを暗号化 | Result<Vec<u8>, String> |
paozip::decrypt(data, key) | 暗号化データを復号 | Result<Vec<u8>, String> |
paozip::encrypt_file(path, output, key) | ファイルを暗号化(.rse) | Result<PathBuf, String> |
paozip::decrypt_file_to(path, output, key) | ファイルを復号して書き出し | Result<PathBuf, String> |
paozip::is_licensed() | ライセンス版かどうか | bool |
paozip::get_product_info() | 製品情報(構造体) | ProductInfo |
重要な注意事項
- Rustはコンパイル言語のため、ビルド時復号方式(方式C)を使用します。
run コマンドはありません。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- 復号したソースファイルをリポジトリにコミットしないよう
.gitignore に追加してください。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
Swift版 クイックリファレンス
セットアップ
製品版に同梱されている paozip-swift パッケージをビルドしてください。
Pure Swift実装のため、追加の依存関係は最小限です。
# Swift Package Manager でビルド
cd paozip-swift
swift build -c release
# インストール
cp .build/release/paozip /usr/local/bin/
暗号化と復号
# ソースコードを暗号化(.swift → .swe)
paozip encrypt secret.swift
# ビルド時に復号
paozip decrypt secret.swe
# 通常通りビルド
swift build
# 復号ファイルを削除(セキュリティのため)
rm secret.swift
CLIコマンド
| コマンド | 説明 |
paozip encrypt <file.swift> | ファイルを暗号化(.swe を生成) |
paozip decrypt <file.swe> | ファイルを復号(元の .swift に戻す) |
paozip check <file.swe> | 暗号化されているか確認 |
paozip version | バージョン・ライセンス情報を表示 |
API
| 関数 | 説明 | 戻り値 |
encrypt(_:key:) | データを暗号化 | Data |
decrypt(_:key:) | 暗号化データを復号 | Data |
encryptFile(at:output:key:) | ファイルを暗号化(.swe) | String |
decryptFileTo(at:output:key:) | ファイルを復号して書き出し | String |
isLicensed() | ライセンス版かどうか | Bool |
getProductInfo() | 製品情報(構造体) | ProductInfo |
重要な注意事項
- Swiftはコンパイル言語のため、ビルド時復号方式(方式C)を使用します。
run コマンドはありません。
- 暗号化キーは
.paozip_key ファイルに保存されます。開発環境と本番環境で同じキーを使用してください。
- Xcode Build Phases に復号・削除スクリプトを追加して自動化できます。
- 暗号化キーを紛失すると復号できなくなります。必ずバックアップをお取りください。
よくある質問 (FAQ)
- Q. 暗号化されたファイルは、別のサーバーでも動作しますか?
-
はい、同じ暗号化キーでビルドされた paozip モジュールがインストールされていれば動作します。
暗号化キーはビルド時にバイナリに埋め込まれるため、ファイルとして配布する必要はありません。
- Q. PHP版とPython版で暗号化ファイルの互換性はありますか?
-
いいえ。PHP版とPython版は同じ暗号化エンジン(zencode.c)を使用していますが、
暗号化キーは環境ごとに異なるため、相互に復号することはできません。
- Q. 試用版と製品版の違いは何ですか?
-
試用版は [TRIAL] メッセージが表示されます。機能に制限はありません。
製品版は購入者のメールアドレスが埋め込まれ、TRIAL メッセージは表示されません。
- Q. ランタイムライセンスは必要ですか?
-
いいえ。ランタイムライセンスは無償です。
ライセンスが必要なのは開発環境(暗号化を行うマシン)のみです。
暗号化されたファイルを実行するだけの本番環境には、ライセンスは不要です。
- Q. 暗号化キーを紛失した場合はどうなりますか?
-
暗号化キーを紛失すると、暗号化されたファイルを復号できなくなります。
.paozip_key ファイルは必ずバックアップをお取りください。
弊社でもお客様の暗号化キーは保管しておりませんのでご注意ください。
サポート
製品のサポートは info@pao.ac までご連絡ください。
製品トップへ戻る