自已写的,代码质量肯定不是很高,存在优化空间是肯定的,可能也存在隐藏的漏洞。
以下代码侧重于对数据的加密和解密的算法部分,其他部分的问题没处理,仅供参考。
编译器用的是:C-Free 5.0
直接源代码:
//RC4算法对数据的加密和解密
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <iostream>
using namespace std;
/*函数声明*/
void InitSbox(unsigned char sbox[]);
void KeyExpansion(unsigned char key[], char *k, int len);
void UpsetSbox(unsigned char sbox[], unsigned char key[]);
void DataProcess(unsigned char sbox[], FILE *fp1, FILE *fp2);
void DataEncrypt(char *k, unsigned char *key, unsigned char *sbox, FILE *fp1, FILE *fp2);
void DataDecrypt(char *k1, unsigned char *key, unsigned char *sbox, FILE *fp1, FILE *fp2);
/*初始化S盒*/
void InitSbox(unsigned char sbox[]){
for(int i = 0; i < 256; i++) sbox[i] = i;
}
/*密钥填充256数组*/
void KeyExpansion(unsigned char key[], char *k, int len){
if(len <= 256){
for(int i = 0; i <