JSLを使用して、アドイン開発用のスクリプトを暗号化します私はいくつかのアドインを維持しており、それらのいくつかについては、ビルド時に含まれているスクリプトのいくつかの変数を更新したいと思います。 そこで、スクリプトファイルを開き、いくつかの連結または置換を行ってから、ファイル全体を暗号化して特定の場所(スクリプトファイルのリスト用)に保存するスクリプトを作成したいと思います。 その後、私は素晴らしいアドインビルダーを使用することができます@Justin_Chiltonアドインを構築します。 スクリプトを暗号化するJSL関数が見つかりません。存在しますか、それとも別のユーティリティで実行できますか?
スクリプティングRe:JSLを使用して、アドイン開発用のスクリプトを暗号化しますスクリプトの暗号化コマンドは、Main Menu()関数を使用してJSLを介して渡すことができます。
Main Menu( "encrypt script","Script 10" );
ここで、「スクリプト10」は、暗号化するスクリプトウィンドウの名前です。
しかし、次に起こることは、パスワードを尋ねるダイアログウィンドウがポップアップすることです、そして私はそれがあなたが望むものではないと思います
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を使用して、アドイン開発用のスクリプトを暗号化します提案をありがとう!
アイデアは、しばらくの間機能し、ある日付の後に機能しなくなる(IPを保護する)自己破壊型アドインを作成することです。 そのため、アドインをビルドするたびに、スクリプトに新しい有効期限をハードコーディングして、日付フィールドをどこかで編集しても無効にならないようにする必要があります。 有効期限を外部スクリプトファイルに入れると、毎回手動で暗号化する必要があります。 同じ理由で、データテーブルはオプションではありません。
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" )
);
暗号化されたスクリプトに秘密鍵を埋め込んで、確認できるようにします。
ファイルは次のようになります
{"checkcode": "B7611676E821AA1ECC4CB5D6F02C6BA9"、 "expiredate": "1jan2022"}
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を使用して、アドイン開発用のスクリプトを暗号化しますありがとう。 その変数は、JSONソリューションになりたいと思う前に、最初のバージョンから残されていました。
これは、JMPが(JSONではなく)PERファイルで行うことと似ています。ユーザー名やサイト名などの他の変数を連結に追加することで、それらをロックインすることもできます。
アプリの実行後にShowGlobals()を使用して、秘密を簡単に見つけられないようにする必要があります。