一、基本原理
网络上和书籍上已经将说的非常清楚了,我这里就不再赘叙.
可以参照博客:RC4加密算法
RC4算法的实现其实不难,其代码的逻辑思维非常简单,但是需要一定程度的计算机原理知识才能在一些细节上不犯错误。
例如:
1、明文密文还有状态数组S[i](0~255)类型应该选择为unsigned char 类型,因为其取值范围为0~255,且子长为一字节。
2、明文密文以及状态数组S[i]的类型应该全部一样,这样做异或运算时就不会发生内存溢出的问题。
注意:我用的编译器是最新版的DEV-CPP,不同编译器可能执行标准不一样
简单版的代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
/*void GetString(unsigned char *s) //接收无符号字符的函数,gets函数的替代函数,
//但是字符串长度会莫名多 一,因此舍弃不用
{
int i=0;
unsigned char c;
do
{
c=getchar();
s[i]=c;