文字的加密与解密

文字的加密与解密

ID:6699696

大小:37.00 KB

页数:4页

时间:2018-01-22

文字的加密与解密_第1页
文字的加密与解密_第2页
文字的加密与解密_第3页
文字的加密与解密_第4页
资源描述:

《文字的加密与解密》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、文字的加密与解密摘要:每个字符的都有相应的ASCII码对应,给文字加密可利用增加或減少字符的ASCII值,产生一组新的文字,达到加密的效果。然后再制作解密程序还原出文字,使解密者知道文字的真实信息。关键词:文字加密解密……余则成打开收音机,接收来自上级的信息,用笔在纸上记下收音机讲述的代码,打开密码本,记下表述的内容,划燃火柴将纸销毁。此时,他已经知道接下的任务是什么了。……这是近期热播电视连续剧《潜伏》中的一段经典镜头。上级将任务写好后,找出密码本,将其转换为代码,称之为加密;余则成通过从收音机中接收代码,用密码本查找对应文字,转换出文字信息,

2、此为解密。在我们讲述算法与程序设计课程时,同学们问过我如何制作一个进行文字加密和解密的工具。于是我与同学进行了一节课的共同思考,决定采用如下ASCII的值改变来解决问题,过程为:1、读入要加密的文本;2、将需加密的每个字符的ASCII表示出来,然后增加或减少相应ASCII的值,使每个字变成另一个字后输出,产生一批谁都不能理解的文字。3、交给信息接收者一段程序及加密后的文字,接收者通过解密程序将原文字解密。接下来我们就开始了程序设计制作的过程。一、加密程序的制作:我们用VisualBasic6.0制作右图所示窗体:这里text1文本框中放入待加密的

3、文字,text2文本框中放入需偏移的位置,每个字可以不同,text3文本框中产生加密后的文字。假如我们在文本框text1中输入“余则成是好人”。加密的方法是:将每个字的ASCII值减去一定的值,再将文字显示出来。这时出来的文字谁都不会理解它的意思了。开始我们考虑的程序如下:PrivateSubCommand1_Click()DimiAsIntegerjmwz=Text1.Textj=Len(jmwz)‘提取文字长度Dimjm(100)AsInteger‘建一个数据库将提取的每个字存入‘以下循环作用为将文字ASCII值減少5后显示出来Fori=1T

4、ojjm(i)=Asc(Mid(jmwz,i,1))–5‘给每个文字ASCII值减去5t=t+Chr(jm(i))NextiText3.Text=t‘将文字内容显示在text3文本框中EndSub当然地,上述方法由于每个字的ASCII增加或減少的值是一样的,很容易被人找出规律来。这时我们可以给每个字符的ASCII值增加或减少不同的数值,这时,加密出来的文字就很难被找出规律来。我们增加一个联系码,由加密者提供给接收者,接收者通过程序将其还原出来。程序可被我们修改为:PrivateSubCommand1_Click()DimiAsInteger,ka

5、sintegerjmwz=Text1.Textj=Len(jmwz)ad=len(text2.text)’取联系码字符串长度Dimjm(100)AsInteger‘建一个数据库将提取的每个字存入Dimad(100)asstring‘建一个数据库将联系码字符串的每个字符存入Fork=1toadAd(k)=mid(text2.text,k,1)Nextk‘以下循环作用为将文字ASCII值減少一定数值后显示出来Fori=1Toj‘当联系码长度比加密文本长时,减去相应位置的数字,否则重复联系码内容数字。Ifj

6、wz,i,1))–val(ad(i))elsejm(i)=Asc(Mid(jmwz,i,1))–val(ad(imodad))endift=t+Chr(jm(i))NextiText3.Text=t‘将文字内容显示在text3文本框中EndSub然后调试,我们输入文字“余则成是好人”输入联系码“”。我们发现出来的文字发音还是差不多的,其它人多念几遍就能猜出大概意思,。于是,我们在“jm(i)=Asc(Mid(jmwz,i,1))–val(ad(i))”和“jm(i)=Asc(Mid(jmwz,i,1))–val(ad(imodad))”两句话后面

7、均加入“-55”使文字发音差距大,产生的文字为“莹怨硰蕦簢葦”,效果不错。然后我们利用VisualBasic6.0软件中的“文件”、“生成工程1.exe”生成一个可执行文件。发给加密操作者使用。二、解密程序的制作我们接下来设计解密程序。研究发现:解密程序的原理与加密的程序原理是一样的。我们制作如右图所示窗体。程序代码如下:PrivateSubCommand1_Click()DimiAsInteger,kasintegerjmwz=Text1.Textj=Len(jmwz)adm=len(text2.text)’取联系码字符串长度Dimjkm(10

8、0)AsInteger‘建一个数据库将提取的每个字存入Dimad(100)asstring‘建一个数据库将联系码字符串的每个字符存入Fo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。