Verwenden Sie JSL, um Skripts für die Add-In-Entwicklung zu verschlüsselnIch verwalte einige Add-Ins und für einige davon möchte ich während der Erstellung einige Variablen in den enthaltenen Skripten aktualisieren. Ich möchte also ein Skript schreiben, das eine Skriptdatei öffnet, einige Verkettungen oder Ersetzungen vornimmt und dann die gesamte Datei verschlüsselt und an einem bestimmten Ort speichert (für eine Liste von Skriptdateien). Dann kann ich den brillanten Add-In-Builder von verwenden @Justin_Chilton um die Add-Ins zu erstellen. Ich kann keine JSL-Funktion zum Verschlüsseln eines Skripts finden. Existiert sie oder kann sie mit einem anderen Dienstprogramm durchgeführt werden?
Automatisierung und SkripterstellungDatenmischung und -bereinigungBetreff: Verwenden Sie JSL, um Skripte für die Add-In-Entwicklung zu verschlüsselnDanke. Diese Variable war von einer ersten Version übrig geblieben, bevor mir klar wurde, dass es sich um eine JSON-Lösung handeln sollte.
Dies ähnelt dem, was JMP mit einer PER-Datei (nicht JSON) macht. Sie können auch andere Variablen wie einen Benutzer- oder Site-Namen sperren, indem Sie sie zur Verkettung hinzufügen.
Sie sollten ShowGlobals() verwenden, nachdem Sie Ihre App ausgeführt haben, um sicherzustellen, dass Ihr Geheimnis nicht zu leicht entdeckt wird.
Betreff: Verwenden Sie JSL, um Skripte für die Add-In-Entwicklung zu verschlüsselnDanke @Craige_Hales Das ist eine interessante Lösung, die das Ablaufdatum und eine Prüfsumme einbettet.
Kleine Korrektur für einen Codierungsfehler in Zeile 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" )
);
Betreff: Verwenden Sie JSL, um Skripte für die Add-In-Entwicklung zu verschlüsselnetwas wie das?
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" )
);
Betten Sie den geheimen Schlüssel in das verschlüsselte Skript ein, damit Sie ihn überprüfen können.
die Datei sieht so aus
{"checkcode": "B7611676E821AA1ECC4CB5D6F02C6BA9", "expiredate": "1. Januar 2022"}
Betreff: Verwenden Sie JSL, um Skripte für die Add-In-Entwicklung zu verschlüsselnDanke für die Vorschläge!
Die Idee besteht darin, ein selbstzerstörendes Add-In zu erstellen, das eine Zeit lang funktioniert und nach einem bestimmten Datum nicht mehr funktioniert (IP schützen). Deshalb möchte ich jedes Mal, wenn ich das Add-In erstelle, ein neues Ablaufdatum im Skript fest codieren, damit dies nicht durch Bearbeiten eines Datumsfelds irgendwo umgangen werden kann. Wenn ich das Ablaufdatum in eine externe Skriptdatei eintrage, muss ich diese jedes Mal manuell verschlüsseln. Aus dem gleichen Grund ist eine Datentabelle keine Option.
Betreff: Verwenden Sie JSL, um Skripte für die Add-In-Entwicklung zu verschlüsselnVerwenden Sie möglicherweise eine jsl/jmp/plaintext-Datei nur mit den Werten und include() oder open() oder loadtextfile() aus dem verschlüsselten Skript.
Eine kleine Datentabelle könnte eine gute Wahl für eine Reihe benannter Parameter sein. Oder ein JSL-Snippet, das zum Festlegen einiger Variablen enthalten ist. Eine Datei namens X.jsl mit nur dem Text 42 kann als parm = include("x.jsl"); geladen werden. und Sie könnten kompliziertere Mengen mit einer Liste erstellen, wenn X {42,"Fred"} enthält, etwa {parm,name} = include("x.jsl");
Betreff: Verwenden Sie JSL, um Skripte für die Add-In-Entwicklung zu verschlüsselnDer Befehl „Encrypt Script“ kann über JSL mit der Funktion „Main Menu()“ übergeben werden.
Main Menu( "encrypt script","Script 10" );
Dabei ist „Skript 10“ der Name des zu verschlüsselnden Skriptfensters.
Als nächstes erscheint jedoch ein Dialogfenster, in dem Sie nach den Passwörtern gefragt werden, und ich glaube nicht, dass Sie das wollen