使用JSL加密腳本以進行外接程序開發我維護了幾個插件,對於其中的一些插件,我希望在構建時更新其中包含的腳本中的幾個變量。 因此,我想編寫一個腳本來打開腳本文件,進行一些串聯或替換,然後加密整個文件並將其保存到某個位置(用於腳本文件列表)。 然後,我可以通過以下方式使用出色的加載項生成器: @Justin_Chilton構建外接程序。 我找不到JSL函數來加密腳本,它是否存在或可以使用其他實用程序來完成?
腳本編寫回复:使用JSL加密腳本以進行外接程序開發可以使用Main Menu()函數通過JSL傳遞Encrypt Script命令。
Main Menu( "encrypt script","Script 10" );
其中“腳本10”是要加密的腳本窗口的名稱。
但是,接下來會發生的是彈出詢問密碼的對話框窗口,我認為這不是您想要的
回复:使用JSL加密腳本以進行外接程序開發也許只使用帶有值的jsl / jmp / plaintext文件,並使用加密腳本中的include()或open()或loadtextfile()。
對於一組命名參數,較小的數據表可能是一個不錯的選擇。 或包含用來設置某些變量的JSL片段。 可以將只有文本42的名為X.jsl的文件加載為parm = include(“ x.jsl”);如果X包含{42,“ Fred”},例如{parm,name} = include(“ x.jsl”),則可以使用列表進行更複雜的設置。
回复:使用JSL加密腳本以進行外接程序開發感謝您的建議!
這個想法是創建一個可以自我破壞的加載項,該加載項可以工作一段時間,並在某個日期停止運行後再進行保護(保護IP)。 因此,每次構建外接程序時,我都希望在腳本中硬編碼一個新的到期日期,這樣才能通過在某個地方編輯日期字段來克服這個失效日期。 如果我將到期日期放在外部腳本文件中,則每次都必須手動對其進行加密。 出於同樣的原因,不能選擇數據表。
回复:使用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”,“過期”:“ 1jan2022”}
回复:使用 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" )
);
回复:使用 JSL 加密插件開發腳本謝謝。 在我意識到它想要成為一個 JSON 解決方案之前,該變量是第一個版本遺留下來的。
這類似於 JMP 對 PER 文件(不是 JSON)所做的;您也可以通過將其他變量添加到串聯中來鎖定其他變量,例如用戶或站點名稱。
您應該在運行您的應用程序後使用 ShowGlobals() 以確保您的秘密不容易被發現。