Loading...
  所在位置:论坛首页 -> ┈┋电脑网络技术区┋┈ -> 图象媒体技术应用 -> Authorware中如何进行文本加密和解密?
标题:Authorware中如何进行文本加密和解密?收藏 编辑 删除 楼主 | 上一篇 下一篇
薰衣草
等级:社区游侠
权限:普通用户
积分:33
金钱:2746
声望:48
经验:48
发帖数:652
注册:2007年10月28日
资料 短消息2007-12-2 16:01:10
问题 很多程序都需要调用外部文本文件,有时不想让用户可以随便查看文本文件的内容,这时就需要对文本进行处理,比如加密,在调用文本时就需要对文本进行解密。那么在程序中如何对文本文件进行加密和解密呢?

 解决思路

对文本进行加密有很多办法,最简单的办法是将修改文本文件的后缀名,更改它与编辑程序的关联,比如取消后缀名或改成其它程序没有关联的程序名(可以随便取一个),也可以更改为其它不能与那些直接打开文本的程序相关的后缀名,比如改为*.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”。

⑴加入一个【计算】图标,命名为“读取文本”,在其中输入以下内容:

--读取指定文件中的内容

wen:=ReadExtFile(FileLocation^"dianwen.txt")

⑵加入一个【显示】图标,命名为“显示读取的文本”。在其中显示读取的内容,输入以下内容:

{wen}

由于读取的内容可能比较多,所以在显示时要加上滚动条,方法是在选中文字或输入文字时,选中菜单命令Text|Scrolling(【文本】|【卷帘文本】),给文本加上Authorware自带的滚动条,如图7.15所示。

图7.15 给文本加上Authorware自带的滚动条

2.加密

⑴创建一个按钮响应,按钮名字为“加密”,响应图标为【群组】图标,在其中包括一个【计算】图标和一个【显示】图标。

⑵把该【计算】图标命名为“变换”,在其中输入以下代码:

--统计总长度

chang:=CharCount(wen)

--清空

wen1:=""

--依次转换

repeat with i:=1 to chang

    --取出对应位置上的字符

    cha:=SubStr(wen,i,i)

    --转换为ASCII值

    cod:=Code(cha)

    --设定小写字母条件

    con1:=(cod>=Code("a")&cod<=Code("z"))

    --设定大写字母条件

    con2:=cod>=Code("A")&cod<=Code("Z")

    --判断是否是字母

    if con1 | con2 then

        --如果是,将其ASCII值加4

        cod:=cod+4

        --判断是否超出字母范围

        if (cod>Code("Z") & cod<=Code("Z")+4) | cod>Code("z") then

            --如果超出则将值减去26

            cod:=cod-26

        end if

        --将数字转换为字符

        cha:=Char(cod)

    end if

    --将转换后的字符添加到wen1中

    wen1:=wen1^cha

end repeat

⑶将【显示】图标命名为“显示加密后文本”,在其中输入以下内容:

{wen1}

为了对照,可以将该【显示】图标中的内容与前面的【显示】图标“显示读取的文本”中的内容放置在左右对称的位置。

3.运行程序

运行程序,单击“加密”按钮后,就可以在右边看到加密后的文本,如图7.16所示。

图7.16 加密效果演示

程序流程图如图7.17所示。

图7.17 程序流程图

      试一试:读者可以试试把按上述方法加密的文本进行解密。

 专家说明

判断一个字符是否是字母,可以看它的ASCII值是否在a~z与A~Z之间。比较时可以先将字符转换为ASCII值,变换后再转换回字符。

 专家指点

如果只有对字母进行加密,判断是否是字母的条件可以利用字符进行比较。判断一个字符是否是小写字母可以用以下条件:

cha>="a"&cha<="z"

判断一个字符是否是大写字母可以用以下条件:

cha>="A"&cha<="Z"

但对字符进行变换就只有转换为ASCII值来进行。

 相关问题

对文本进行加密的方法有很多,比如还可以将文本内容全部反向存储(即第一个存储为最后一个,第二个存储为倒数第二个,依次类推)或者将其中的每个单词反向存储

2007-12-2 16:01:10 顶部
第1页 共页 共0个回复     <<    >>    
 快速回复
  • 支持UBB,HTML标签

  • 高级回复

  • 操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
      首页 | 购买指南 | 商业版本 | 虚拟主机 | 特色介绍 | 下载中心 | 支付方式
    Copyright 2004-2008 BBSGood.com Powered By: BBSGood.Speed Version 5.0
      咨询电话:0575-85513832、0575-85513825(传真)、7*24小时咨询服务:13606552007 不良信息举报中心 浙ICP备05029817号
      业务QQ:38958768、客服QQ1:415896239、客服QQ2:343896043、MSN:jccsxx@hotmail.com