RC流密码算法之C语言实现.docx

RC流密码算法之C语言实现.docx

ID:57568077

大小:10.25 KB

页数:11页

时间:2020-08-27

RC流密码算法之C语言实现.docx_第1页
RC流密码算法之C语言实现.docx_第2页
RC流密码算法之C语言实现.docx_第3页
RC流密码算法之C语言实现.docx_第4页
RC流密码算法之C语言实现.docx_第5页
资源描述:

《RC流密码算法之C语言实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、RC4流密码算法之C语言实现RC4加密算法RC4算法的原理很简单,包括初始化算法(KSA)和伪随机子密码生成算法(PRGA)两大部分。假设S-box长度和密钥长度均为为n。先来看看算法的初始化部分(用类C伪代码表示):  for(i=0;i

2、  {  j=(j+s+k)%256;  swap(s,s[j]);  }  i=j=0; 得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同。 根据目前的分析结果,没有任何的分析对于密钥长度达到128位的RC4有效,所以,RC4是目前最安全的加密算法之一,大家可以放心使用!  while(明文未结束)  {  ++i%=n;  j=(j+s)%n;  swap(s,s[j]);  sub_k=s((s+s[j])%n);  }位长可以自己随意设置,将256设置为你希望的即可我的C语言源码:平台:windo

3、wsXP,VC++6.0有什么大家可以讨论的地方请留言或发邮件至我邮箱:#include #include #include voidswap(unsignedchar*s1,unsignedchar*s2) { chartemp; temp=*s1; *s1=*s2; *s2=temp; } voidre_S(unsignedchar*S) { unsignedinti; for(i=0;i<256;i++)   S[i]=i; } voidre_T(unsignedcha

4、r*T,char*key) { inti; intkeylen; keylen=strlen(key); for(i=0;i<256;i++)   T[i]=key[i%keylen]; } voidre_Sbox(unsignedchar*S,unsignedchar*T) { inti; intj=0; for(i=0;i<256;i++) {   j=(j+S[i]+T[i])%256;   swap(&S[i],&S[j]); } } voidre_RC4(unsignedchar*S,char*key) { charT[2

5、55]={0}; re_S(S); re_T(T,key); re_Sbox(S,T); } voidRC4(FILE*readfile,FILE*writefile,char*key) { unsignedcharS[255]={0}; unsignedcharreadbuf[1]; inti,j,t; re_RC4(S,key); i=j=0; while(fread(readbuf,1,1,readfile)) {   i=(i+1)%256;   j=(j+S[i])%256;   swap(&S[i],&S[j]);   

6、t=(S[i]+(S[j]%256))%256;   readbuf[0]=readbuf[0]^S[t];   fwrite(readbuf,1,1,writefile);   memset(readbuf,0,1); } printf("加密

7、解密成功!!!"); } intmain(intargc,char*argv[]) { char*Filename1,*Filename2; char*key; FILE*file1,*file2; Filename1=argv[1]; Filename2=argv[2]; key=a

8、rgv[3]; if(argc==4) {   printf("**********************正在加密中*******************"); } else {   printf("输入格式:");   printf("文件名

9、加密或解密文件名

10、存放文件名

11、密钥");   return-1; } if((file1=fopen(Filename1,"rb"))==NULL

12、

13、(file2=fopen(Filename2,"wb"))==NULL) {     printf("Can'topenfile

14、");   return-1; }    RC4(file1,file2,key); fclose(file1); fclose(file2); return0; }加密解密算法RC5--#include#

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

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

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