Arc/Info Workstation中加密AML程序

利用Arc/Info Workstation 进行数据处理时,难免要用到AML语言,通过该脚本语言,可以快速、准确的完成大批量数据的处理,自己辛苦写的代码,不想别人拿去使用时能看到源代码,针对这种情况,可以通过AML提供的&ENCODE命令对AML程序进行加密来实现。

1.用法

具体用法如下:

&ENCODE &ENCRYPT <AML_file | menu_file> {header}
&ENCODE &LISTHEADER <encoded_file>

  • &ENCRYPT:从AML程序或菜单创建加密的文件。
  • <AML_or_menu_file>:表示创建的加密文件的名称,可以包含路径名。
  • {header}:表示用于替换原来AML文件头文件的特殊的字符串。
  • &LISTHEADER <encoded_file>:表示显示与指定加密文件相关的头文件信息。

2.注意事项

(1) &ENCODE &ENCRYPT适用于对指定的AML文件或菜单文件进行加密,通过这种方式来阻止别人来查看源代码。

(2) 如果AML程序以*.aml的扩展名结尾,加密后的文件扩展名将变为*.eaf。如果菜单文件以.menu扩展名结尾,那么加密文件的扩展名将变为.emf。

图一    加密前(红色)和加密后(蓝色)的AML程序
图一    加密前(红色)和加密后(蓝色)的AML程序

(3) 加密文件可以被用在任何非加密文件可以使用的地方。他们与普通文件之间的区别仅仅是不能被阅读。

(4) 如果对文件进行加密,那么这个文件必须具备扩展名,*.aml或者*.menu。

(5) 注意不要删除原始非加密的AML或MENU文件,因为该加密是一个不可逆的过程,无法从加密的文件获得可阅读的非加密文件。

(6) 如果说AML或MENU的源程序发生改变,比如说进行了改进,那么加密的文件应该重新进行编码,否则,如果两个文件同时存在的话,即使加密文件比非加密文件旧,但是同样会运行加密的文件,因为在不指定扩展名的时候,程序会先寻找.eaf文件,然后再寻找AML文件

(7) &WATCH, &TEST, &ECHO等命令不会显示出以加密文件的内容。

3.使用例子

创建一个名为demo.eaf的文件。

Arc: &encode &encrypt demo.aml

创建一个名为main.emf的文件。

Arc: &encode &encrypt main.menu

如果要运行一个加密的AML程序,可以这样输入:

Arc: &run demo

如果想要显示一个加密AML文件的头信息,可以使用下面的方法:

Arc: &encode &listheader main.eaf
/usr/application/main.aml 17 Sep 91 18:40:31 Tuesday

在加密文件中创建自定义头信息,可以这样写:

Arc: &encode &encrypt work.aml Task Force 4 ~
Arc: Project X – [date -dow]
Arc: &encode &listheader work.aml
Task Force 4 Project X – Tuesday