使用JSL加密插件开发脚本我维护了几个插件,对于其中一些插件,我想在构建时更新包含的脚本中的几个变量。 所以我想编写一个脚本来打开一个脚本文件,进行一些连接或替换,然后加密整个文件并将其保存到某个位置(用于脚本文件列表)。 然后我可以使用出色的插件生成器@贾斯汀奇尔顿构建加载项。 我找不到用于加密脚本的 JSL 函数,它是否存在或是否可以使用其他实用程序来完成?
自动化和脚本数据混合和清理Re: 使用 JSL 加密插件开发脚本谢谢。 在我意识到它想成为一个 JSON 解决方案之前,该变量是第一个版本遗留下来的。
这类似于 JMP 对 PER 文件(而非 JSON)的处理;您也可以锁定其他变量,例如用户或站点名称,方法是将它们添加到连接中。
您应该在运行您的应用程序后使用 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”,“过期”:“1jan2022”}
Re: 使用 JSL 加密插件开发脚本感谢您的建议!
这个想法是创建自毁插件,它可以工作一段时间,然后在某个日期后停止工作(保护 IP)。 因此,每次我构建加载项时,我都希望在脚本中硬编码一个新的到期日期,这样就不会通过在某处编辑日期字段来解决这个问题。 如果我将到期日期放在外部脚本文件中,我每次都必须手动加密。 出于同样的原因,数据表不是一种选择。
Re: 使用 JSL 加密插件开发脚本也许使用仅包含值的 jsl/jmp/plaintext 文件,以及来自加密脚本的 include() 或 open() 或 loadtextfile()。
对于一组命名参数,小型数据表可能是一个不错的选择。 或用于设置一些变量的 JSL 片段。 可以将名为 X.jsl 且仅包含文本 42 的文件加载为 parm = include("x.jsl");如果 X 包含 {42,"Fred"},你可以用列表做更复杂的集合,比如 {parm,name} = include("x.jsl");
Re: 使用 JSL 加密插件开发脚本可以使用 Main Menu() 函数通过 JSL 传递 Encrypt Script 命令。
Main Menu( "encrypt script","Script 10" );
其中“Script 10”是要加密的脚本窗口的名称。
但是,接下来会弹出要求输入密码的对话窗口,我认为这不是您想要的