Adobeのスクリプトファイル(.jsx)を配布する際に、「コードの中身を見せたくない」「一部だけ非公開にしたい」と思ったことはありませんか?
この記事では、ExtendScriptで記述したJSXファイルの一部分だけを難読化(バイナリ化)して、外部に見えないようにする方法をご紹介します。
目次
JSXの一部を難読化する手順
✅ 手順1:難読化したいコードだけを抜き出す
スクリプトの中で隠したい部分を別ファイルとして保存します。
(例:secret.jsx
など)
✅ 手順2:ExtendScript Toolkitでバイナリ形式に変換
- ExtendScript Toolkit で
secret.jsx
を開く - メニューから「ファイル → バイナリ形式で書き出し」を選択
.jsxbin
ファイルとして保存 or 中身をコピー
※ 中身は文字列として
@JSXBIN@〜
という形式になります
✅ 手順3:元のJSXに eval()
で埋め込む
以下のように eval()
関数を使って、難読化したコードを呼び出します。
#target photoshop
function test(){
eval("@JSXBIN@ES@2.0@MyBbyBn0ABJAnAEjzFjBjMjFjSjUBfRBFeD2lIhQ2nJhQ2nchQff0DzACByB")
}
test();
なぜ全部をjsxbinにしないの?
.jsxbin
形式でスクリプト全体を書き出すこともできますが、
- ファイルとして直接実行しにくい
- 拡張子が
.jsxbin
になる - 他の開発者が再利用・編集しにくい
といったデメリットがあります。
そのため、JSXファイルのまま一部だけを暗号化して隠す方法が、使い勝手と保護のバランスが取れていておすすめです。
まとめ
- ExtendScript Toolkitを使えばJSXの一部をバイナリ形式(難読化)に変換可能
eval()
を使えば難読化したコードを他のスクリプトに組み込むことができる- 全体を
.jsxbin
にするよりも柔軟性と互換性が高い方法
配布用スクリプトで一部だけロジックを非公開にしたい場合などに、ぜひ活用してみてください。