JSL を使用してアドイン開発用のスクリプトを暗号化する私はいくつかのアドインを管理していますが、そのうちのいくつかについては、ビルド時に含まれるスクリプト内のいくつかの変数を更新したいと考えています。 そこで、スクリプト ファイルを開き、いくつかの連結または置換を行ってから、ファイル全体を暗号化し、特定の場所 (スクリプト ファイルのリスト用) に保存するスクリプトを作成したいと思います。 これで、素晴らしいアドイン ビルダーを使用できるようになります。 @ジャスティン・チルトンアドインを構築します。 スクリプトを暗号化するための JSL 関数が見つかりません。存在しますか、それとも別のユーティリティで実行できますか?
自動化とスクリプト作成データのブレンディングとクリーンアップRe: JSL を使用してアドイン開発用のスクリプトを暗号化するありがとう。 この変数は、JSON ソリューションになりたいと気づく前に、最初のバージョンから残っていたものでした。
これは、JMP が (JSON ではなく) PER ファイルに対して行うことと似ています。ユーザー名やサイト名などの他の変数も、連結に追加することでロックインできます。
アプリの実行後に ShowGlobals() を使用して、シークレットが簡単に発見されないようにする必要があります。
Re: JSL を使用してアドイン開発用のスクリプトを暗号化するありがとう@Craige_Halesこれは、有効期限とチェックサムを組み込んだ興味深いソリューションです。
5行目のコーディングエラーを小規模に修正しました。
mySecretKey = "The quick brown fox";
aa = [=> ];
aa["expiredate"] = "1jan2022";
aa["checkcode"] = Hex( Blob MD5( Char To Blob( mySecretKey || aa["expiredate"] ) ) );
Save Text File( "$temp/license.txt", As JSON Expr( aa ) );
///////////////////
bb = Parse JSON( Load Text File( "$temp/license.txt" ) );
If( Hex( Blob MD5( Char To Blob( mySecretKey || bb["expiredate"] ) ) ) == bb["checkcode"],
Print( "ok: " || bb["expiredate"] ),
Print( "bad" )
);
Re: JSL を使用してアドイン開発用のスクリプトを暗号化するこのようなもの?
mySecretKey = "The quick brown fox";
aa = [=> ];
aa["expiredate"] = "1jan2022";
aa["checkcode"] = Hex( Blob MD5( Char To Blob( mySecretKey || expiredate ) ) );
Save Text File( "$temp/license.txt", As JSON Expr( aa ) );
///////////////////
bb = Parse JSON( Load Text File( "$temp/license.txt" ) );
If( Hex( Blob MD5( Char To Blob( mySecretKey || bb["expiredate"] ) ) ) == bb["checkcode"],
Print( "ok: " || bb["expiredate"] ),
Print( "bad" )
);
暗号化されたスクリプトに秘密キーを埋め込んで確認できるようにします。
ファイルは次のようになります
{"チェックコード":"B7611676E821AA1ECC4CB5D6F02C6BA9","有効期限":"2022 年 1 月 1 日"}
Re: JSL を使用してアドイン開発用のスクリプトを暗号化するご提案ありがとうございます!
このアイデアは、しばらくの間動作し、ある日付後に動作しなくなる (IP を保護する) 自己破壊型アドインを作成することです。 そのため、アドインをビルドするたびに、どこかの日付フィールドを編集しても無効にならないように、新しい有効期限をスクリプトにハードコードする必要があります。 外部スクリプト ファイルに有効期限を設定する場合は、毎回手動で暗号化する必要があります。 同じ理由で、データ テーブルはオプションではありません。
Re: JSL を使用してアドイン開発用のスクリプトを暗号化するおそらく値だけを含む jsl/jmp/plaintext ファイルを使用し、暗号化されたスクリプトから include() または open() または loadtextfile() を使用します。
一連の名前付きパラメーターには、小さなデータ テーブルが適している可能性があります。 または、変数を設定するために含まれる JSL のスニペット。 テキスト 42 のみを含む X.jsl という名前のファイルは、 parm = include("x.jsl"); としてロードできます。また、X に {42,"Fred"} が含まれている場合は、{parm,name} = include("x.jsl"); のように、リストを使用してより複雑なセットを実行することもできます。
Re: JSL を使用してアドイン開発用のスクリプトを暗号化するEncrypt Script コマンドは、Main Menu() 関数を使用して JSL 経由で渡すことができます。
Main Menu( "encrypt script","Script 10" );
ここで、「Script 10」は、暗号化されるスクリプト ウィンドウの名前です。
ただし、次に何が起こるかというと、パスワードを要求するダイアログ ウィンドウがポップアップ表示されます。これはあなたが望んでいることではないと思います。