RC4加密算法C语言实现

RC4加密算法C语言实现

ID:43442378

大小:36.50 KB

页数:6页

时间:2019-10-01

RC4加密算法C语言实现_第1页
RC4加密算法C语言实现_第2页
RC4加密算法C语言实现_第3页
RC4加密算法C语言实现_第4页
RC4加密算法C语言实现_第5页
资源描述:

《RC4加密算法C语言实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RC4加密算法C语言实现代码文件名RC4.cppEncrypt.h(代码详见后文)备注:将以上两个文件放在相同的路径(建议不要放在中文路径下)编译执行!编译环境MicrosoftVisualC++6.0C-Free5.0代码解释  RC4加密算法是大名鼎鼎的RSA三人组中的头号人物RonRivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。  RC4算法的原理很简单,包括初始化算法

2、和伪随机子密码生成算法两大部分。假设S-box长度和密钥长度均为为n。先来看看算法的初始化部分(用类C伪代码表示):  for(i=0;i

3、:  i=j=0;  while(明文未结束)  {  ++i%=n;  j=(j+s)%n;  swap(s,s[j]);  sub_k=s((s+s[j])%n);  }  得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同。RC4加密算法在C++中的实现:RC4函数(加密/解密):其实RC4只有加密,将密文再加密一次,就是解密了。GetKey函数:随机字符串产生器。ByteToHex函数:把字节码转为十六进制码,一个字节两个十六进制。十六进制字符串非常适合在HTTP中传输。

4、HexToByte函数:把十六进制字符串,转为字节码。。Encrypt函数:把字符串经RC4加密后,再把密文转为十六进制字符串返回,可直接用于传输。Decrypt函数:直接密码十六进制字符串密文,再解密,返回字符串明文。源代码以下为Encrypt.h文件代码#ifndef_ENCRYPT_RC4_#define_ENCRYPT_RC4_#include#defineBOX_LEN256intGetKey(constunsignedchar*pass,intpass_len,unsign

5、edchar*out);intRC4(constunsignedchar*data,intdata_len,constunsignedchar*key,intkey_len,unsignedchar*out,int*out_len);staticvoidswap_byte(unsignedchar*a,unsignedchar*b);char*Encrypt(constchar*szSource,constchar*szPassWord);//加密,返回加密结果char*Decrypt(constchar

6、*szSource,constchar*szPassWord);//解密,返回解密结果char*ByteToHex(constunsignedchar*vByte,constintvLen);//把字节码pbBuffer转为十六进制字符串,方便传输unsignedchar*HexToByte(constchar*szHex);//把十六进制字符串转为字节码pbBuffer,解码#endif//#ifndef_ENCRYPT_RC4_以下为RC4.cpp文件代码///////////////////////

7、/////////////////////////////////////////版权信息////////////////////////////////////////////////////////////////#include#include#include#include"Encrypt.h".constintmaxn=256+10;char*Encrypt(constchar*szSource,constchar*szPassWord)//

8、加密,返回加密结果{if(szSource==NULL

9、

10、szPassWord==NULL)returnNULL;unsignedchar*ret=newunsignedchar[strlen(szSource)];intret_len=0;if(RC4((unsignedchar*)szSource,strlen(szSource),(unsignedchar*)szPassWord,strlen(szPassWord),r

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

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

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