基于B S的RC4算法的加密与解密程序.docx

上传人:b****6 文档编号:12828817 上传时间:2023-06-08 格式:DOCX 页数:13 大小:432.33KB
下载 相关 举报
基于B S的RC4算法的加密与解密程序.docx_第1页
第1页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第2页
第2页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第3页
第3页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第4页
第4页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第5页
第5页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第6页
第6页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第7页
第7页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第8页
第8页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第9页
第9页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第10页
第10页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第11页
第11页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第12页
第12页 / 共13页
基于B S的RC4算法的加密与解密程序.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于B S的RC4算法的加密与解密程序.docx

《基于B S的RC4算法的加密与解密程序.docx》由会员分享,可在线阅读,更多相关《基于B S的RC4算法的加密与解密程序.docx(13页珍藏版)》请在冰点文库上搜索。

基于B S的RC4算法的加密与解密程序.docx

基于BS的RC4算法的加密与解密程序

基于B/S的RC4算法的加密与解密程序

第一部分使用说明2

1.环境需求3

1.1硬件要求3

1.2软件要求3

2.软件的安装和环境设置3

2.1MyEclipse8.6的安装与配置3

2.2Tomcat6.0服务器的安装与配置3

2.2.1安装3

2.2.2配置3

2.3JDK的安装和Java环境配置4

2.3.1配置4

3.程序使用说明5

3.1程序使用步骤5

3.2结果显示6

第二部分设计说明7

1.引言7

1.1背景7

1.2算法核心7

1.2.1基本概念说明7

1.2.2程序流程图8

2.算法设计8

2.1密钥的生成与加密解密过程8

2.1.1初始化S-box,并用T置乱S8

2.1.1密钥的生成9

2.1.3加密与解密9

2.2界面设计9

2.3Servlet框架11

3.总结11

第一部分使用说明

1.环境需求

1.1硬件要求

实际使用最低配置要求:

CPU:

IntelPremium2450MHz

内存:

128MB

硬盘空间:

4GB

注:

实际的要求因系统的配置和选择安装的应用程序和功能的不同而各异。

1.2软件要求

MyEclipse8.6:

本程序需要用到MyEclipse8.6进行java编程,通过java算法实现核心算法,同时MyEclipse8.6中可以直接实现JSP界面生成等。

Tomcat6.0:

MyEclipse8.6中需要Tomcat6.0服务器的链接。

JDK:

同时需要安装JDK

浏览器:

最后结果显示

Servlet:

基本框架

2.软件的安装和环境设置

2.1MyEclipse8.6的安装与配置

直接通过myeclipse-8.6.1-win32.exe,并根据安装向导进行安装,待tomcat服务器及jdk安装后再进行具体环境配置。

2.2Tomcat6.0服务器的安装与配置

2.2.1安装

若下载的为ZIP压缩文件型,则可以直接解压到文件夹中;若是安装文件型,则执行相应的安装文件,并选择合适的路径安装。

2.2.2配置

在进行安装tomcat完毕后,windows的选项中进入preference,之后preference->myeclipse->servers->tomcat进行配置。

之后在使用时候再在MyEclipse中新建所作项目chenlei时候ADDtomcat服务器。

2.3JDK的安装和Java环境配置

2.3.1配置

安装了JDK后,进行环境变量的配置,主要由三部分:

JAVA_HOME,PATH,CLASSPATH。

右键选择“我的电脑”,选择【属性】,在出现的系统设置的窗口中,选择“高级系统设置”→“环境变量”→“系统变量”→“新建”

JAVA_HOME配置:

PATH的配置:

CLASSPATH的配置:

3.程序使用说明

3.1程序使用步骤

打开文件夹“0909030444陈蕾”,再打开“程序代码”文件夹,找到其中WebRoot文件夹。

打开tomcat所在的安装目录下的webapps,如E:

\tomcat\apache-tomcat-6.0.30\webapps。

并将WebRoot文件夹复制到webapps文件夹下。

3.2结果显示

再在浏览器中打开http:

//localhost:

8080/chenlei/home.jsp,进行加密解密尝试。

第二部分设计说明

1.引言

1.1背景

RC4加密算法是大名鼎鼎的RSA三人组中的头号人物RonRivest在1987年设计的密钥长度可变的流加密算法簇。

之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。

该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。

RC4起初是用于保护商业机密的。

但是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了。

在今天,RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权(缴纳相应费用)的用户才能享受该服务。

1.2算法核心

RC4算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。

假设S-box长度和密钥长度均为为n。

首先是初始化S-box,在有产生的临时矢量T对S进行置乱,进入密钥生成阶段。

得到的密钥用以和明文进行异或(xor)运算,得到密文,解密过程也完全相同。

算法简单高效,安全性较高。

1.2.1基本概念说明

S-box:

256bytes,8*8的S盒,在程序算法实现中是一个状态矢量S,S[0],S[1],S[2],....,S[255]。

所有项都是数字。

密钥K:

长度为1-256bytes(8-1024bits)。

临时矢量T:

一个256个字节的数组。

用密匙填充该数组,不断重复密匙。

异或运算:

异或(xor)是一个数学运算符。

它应用于逻辑运算。

异或符号为“^”。

RC4算法运用的是:

P⊕K⊕K=P

明文:

plaintext

密文:

ciphertext

1.2.2程序流程图

 

2.算法设计

2.1密钥的生成与加密解密过程

2.1.1初始化S-box,并用T置乱S

在初始化的过程中,密钥的主要功能是将S-box搅乱,i确保S-box的每个元素都得到处理,j保证S-box的搅乱是随机的。

部分Java代码:

publicStringencrypt(Stringplaintext){

Stringciphertext=newString();

intS[]=newint[256];//状态矢量S

intT[]=newint[256];//临时矢量T

//初始化状态矢量S,同时生成临时矢量T

for(inti=0;i<256;i++){

S[i]=i;

T[i]=K[i%K.length];//将密钥K存入T中

}

//用T置乱S

{

intj=0;

for(inti=0;i<256;i++){

j=(j+(int)S[i]+(int)T[i])%256;

swap(S[i],S[j]);

}

}

2.1.1密钥的生成

不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,并且,该序列是随机的:

部分Java代码:

inti=0,j=0;

intc=0;

intt;

bytek;//密钥流的当前字节

byteP[]=plaintext.getBytes();

byteC[]=newbyte[P.length];

while(c

i=(i+1)%256;

j=(j+S[i])%256;

swap(S[i],S[j]);

t=((S[i]+S[j])%256);

k=(byte)S[t];

}

2.1.3加密与解密

得到的密钥k用以和明文进行异或运算,得到密文,解密过程也完全相同。

部分Java代码:

(接上一步)

C[c]=(byte)(k^P[c]);

System.out.print(C[c]+"");

c++;

}

System.out.println(newString(C));

ciphertext=newString(C);

returnciphertext;

}

2.2界面设计

界面设计简洁,主要由三个文本输入框,并相应设置两个href的链接,相当于两个按钮,用户可以点击“加密”“解密”实现加密解密。

当用输入一段明文,并点击“加密”(或“解密”),

请输入一句话:

void(0)"onclick="javascript:

doencrypt();returnfalse;">加密

此时调用doencrypt()

functiondoencrypt(){

document.form1.domethod.value="encrypt";

document.form1.submit();

}

functiondodecipher(){

document.form1.domethod.value="decipher";

document.form1.submit();

}

提交并将参数传递给Severlet

由Severlet中经过Java算法解密或加密后的结果,返回页面,由页面显示。

<%Stringcipher=(String)request.getAttribute("cipher");

if(cipher==null){

cipher="";

}

Stringplain1=(String)request.getAttribute("plain1");

if(plain1==null){

plain1="";

}

%>

所得密文:

"/>

void(0)"onclick="javascript:

dodecipher();returnfalse;">解密



所得明文:

"/>

2.3Servlet框架

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。

它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

当Servlet收到页面操作中传来的参数后,提取传来的参数:

若是加密demethod.equals=”encrypt”,则由得到的明文,通过RC4Java算法开始对其加密,并将结果显示出来,传回页面显示在页面上。

if(domethod.equals("encrypt")){

Stringplain=request.getParameter("plainText");

RC4rc4=newRC4();

Stringcipher=rc4.encrypt(plain);

System.out.println(cipher);

request.setAttribute("cipher",cipher);

request.getRequestDispatcher("../home.jsp").forward(request,response);

}

若是加密demethod.equals=”decipher”,则由得到的密文,通过RC4Java算法开始对其解密,并将结果显示出来,传回页面显示在页面上。

if(domethod.equals("decipher")){

Stringcipher=request.getParameter("cipherText");

RC4rc4=newRC4();

Stringplain=rc4.encrypt(cipher);

request.setAttribute("plain1",plain);

request.getRequestDispatcher("../home.jsp").forward(request,response);

}

3.总结

该算法程序还存在很多值得改进之处,还不够完善,比如还不能进行文件的加密,也许还存在一些不能正常加密的情况,但是在整个编程过程中,对于知识的贯通性,思维的缜密性等都得到了锻炼,可以说是一次虽不完善但是体验良多的编程经历,收获良多。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2