当前位置:首页 > 免费毕业设计

基于Misty1算法的加密软件JAVA的实现源代码+LW

基于Misty1算法的加密软件JAVA的实现源代码+LW

  • 网站价格: 2
  • 特殊技术: java
  • 作品类型: 免费毕设
  • 售后服务:

联系方式: 微信:biyebang QQ: 629001810

作品详情

要:

随着计算机网络及通信技术的飞速发展,信息安全成了信息社会急需解决的最重要的问题之一,密码技术是保证信息安全的核心技术。本文用JAVA语言开发了一个基于Misty1算法的加密软件,该软件能对文件进行加密和解密。在具体实现时,首先分析了Misty1算法的基本结构,设计出相应的实施方法,正确实现了该算法,其次,设计了一个图形用户界面,最后对软件进行了测试,验证了实现方法的正确性。

目录

 

捕获5.JPG


3.2.2  程序编辑工具介绍

UltraEdit是很多人爱用的文本编辑软件,它除了单纯的文本编辑外,对于一些特殊的文件,例如Java、ASP等等,都会辨别出它们的关键字或是字符串、数字等,然后用不同的颜色表示它们,让你更容易看出程序中有些什么,或是有没有什么关键字输入错了。除此之外它也可以简单地帮你做错字的更正。不过它最强的地方在于能设定一些宏(Macro),让你可以自行设计额外的特殊功能。

11.png

 

UltraEdit有一项执行外部指令的功能,还可以把执行结果显示出来。好处是可以把DOS模式的结果显示在一个新的文件里,这样一来再多的信息也不怕遗漏了。使用方法很简单,就到菜单栏上选择“高级”→“DOS命令”,快捷键是“F9”。在“命令”处输入在DOS模式下要输入的编译指令,在“工作目录”处选择程序所在目录。在编写程序的过程中,这个功能就显得十分方便,不用总是要到命令提示符模式下去试运行程序。


22.png

 

 

33.png

 

 系统实现

1.1  Misty1算法的实现

3.4.1  加密

64位的明文输入P分为两部份分别为32位L0和R0,在第一轮回和之后的每两个轮回,左边和右边的两部分Li-1和Ri-1分别与KLi通过FL函数产生32位的输出。在每次轮回中的左边部份调用接受32位输入和48位密钥KIi以及64位的密钥KOi的FO函数,产生32位的输出。这种输出是右边部分新的一部分。在每一次轮回中,左边部分和右边部分相互交换给Li和Ri。经过8次轮回最后一次调用KL函数得到左部和右部,然后再作最后的重组左边和右边即Ln+1和Rn+1产生64位输出C64,其中n是轮回的次数(一般为8)。

捕获7.JPG

 

 

 

其中加密输入为:

P=L0‖R0

KL={KLi}

KO={KOi}

KI={KIi}

加密函数则是:

fori=1,3,...,n-1;

Ri=FL(Li-1,KLi)

Li=FL(Ri-1,KLi+1)^FO(Ri,KOi,KIi)

Li+1=Ri^FO(Li,KOi+2,KIi+1)

Ri+1=Li

fori=n+1;

Ri=FL(Li-1.KLi)

Li=FL(Ri-1.KLi+1)

最后输出:C=Ln+1‖Rn+1

下面是加密部分代码:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
public void Encrypt(char ptext[],char userkey[],char ctext[]){long L0,L1,L2,L3,L4,L5,L6,L7,L8,L9;long R0,R1,R2,R3,R4,R5,R6,R7,R8,R9;KeySchedule(userkey);//轮回,加密L0=(((long)ptext[0])<<24)+(((long)ptext[1])<<16)+(((long)ptext[2])<<8)+((long)ptext[3]);R0=(((long)ptext[4])<<24)+(((long)ptext[5])<<16)+(((long)ptext[6])<<8)+((long)ptext[7]);R1=FL(L0,KL[0]);  L1=FO(R1,0,0)^FL(R0,KL[1]);  R2=L1;  L2=FO(R2,4,3)^R1;  R3=FL(L2,KL[2]);  L3=FO(R3,8,6)^FL(R2,KL[3]);  R4=L3;  L4=FO(R4,12,9)^R3;  R5=FL(L4,KL[4]);L5=FO(R5,16,12)^FL(R4,KL[5]);R6=L5;L6=FO(R6,20,15)^R5;R7=FL(L6,KL[6]);L7=FO(R7,24,18)^FL(R6,KL[7]);R8=L7;L8=FO(R8,28,21)^R7;R9=FL(L8,KL[8]);L9=FL(R8,KL[9]); //最后一轮  ctext[0]=(char)((L9>>24)&0XFF);ctext[1]=(char)((L9>>16)&0XFF);ctext[2]=(char)((L9>>8)&0XFF);ctext[3]=(char)(L9&0XFF);ctext[4]=(char)((R9>>24)&0XFF);ctext[5]=(char)((R9>>16)&0XFF);ctext[6]=(char)((R9>>8)&0XFF);ctext[7]=(char)(R9&0XFF);}

 


 源文件


捕获6.JPG

帮我毕业网微信

版权所有© 帮我毕业网 并保留所有权利

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩