问题
很多程序都需要调用外部文本文件,有时不想让用户可以随便查看文本文件的内容,这时就需要对文本进行处理,比如加密,在调用文本时就需要对文本进行解密。那么在程序中如何对文本文件进行加密和解密呢?
解决思路
对文本进行加密有很多办法,最简单的办法是将修改文本文件的后缀名,更改它与编辑程序的关联,比如取消后缀名或改成其它程序没有关联的程序名(可以随便取一个),也可以更改为其它不能(图老师整理)与那些直接打开文本的程序相关的后缀名,比如改为*.mdb格式,双击该文件就会自动调用Microsoft Access来打开文件。但这样的文件还是可以进行编辑的,方法中打开文本编辑程序(比如记事本、写字板等)再打开该文本文件。
其它的办法就是对文本本身进行处理,按一定规律将其转换成密码,在读取时再按约定的规律将其译回原文。比如,可以按以下规律将文本变成密码:将字母A变成字母E,a变成e,即变成其后的第4介字母,W变成A,X变成B,Y变成C,Z变成D。字母按以上规律转换,非字符字符不变。如“Xiaodeng!”转换为“Bmeshirk!”。解密的过程正好反过来。
具体的做法是,从文本文件中读取其中的内容,再逐个字符进行变换,先判定它是否大写字母或小写字母,如果是,则将它的ASCII值加4,如果结果超过了Z或z,则把它的ASCII减去26。
具体步骤
1.读取文本
假定要加密的文本文件保存在程序所在目录下,文件名为“dianwen.txt”
运行Authorware,新建一个文件,保存为“文本加密.a7p”。
⑴加入一个【计算】图标,命名为“读取文本”,在其中输入以下内容:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/authorware/)--读取指定文件中的内容
wen:=ReadExtFile(FileLocation^"dianwen.txt")
⑵加入一个【显示】图标,命名为“显示读取的文本”。在其中显示读取的内容,输入以下内容:
{wen}
由于读取的内容可能比较多,所以在显示时要加上滚动条,方法是在选中文字或输入文字时,选中菜单命令Text|Scrolling(【文本】|【卷帘文本】),给文本加上Authorware自带的滚动条,如图7.15所示。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/authorware/)
图7.15 给文本加上Authorware自带的滚动条
2.加密
⑴创建一个按钮响应,按钮名字为“加密”,响应图标为【群组】图标,在其中包括一个【计算】图标和一个【显示】图标。
⑵把该【计算】图标命名为“变换”,在其中输入以下代码:
--统计总长度
chang:=CharCount(wen)
--清空
wen1:=""
--依次转换
repeat with i:=1 to chang
--取出对应位置上的字符
123下一页