#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <openssl/rc4.h>
//RC4加密
const char* rc4_encode(const char* data,const char* pass){
RC4_KEY key;
int length=strlen(pass);
RC4_set_key(&key,length,(unsigned const char*)pass);//设置密钥
int len=strlen(data);
unsigned char *outdata;//分配密文空间
outdata=(unsigned char *)malloc(sizeof(unsigned char)*(len+1));
memset(outdata,0,len+1);//初始为0
RC4(&key,strlen(data),(unsigned const char*)data,outdata);//加密明文
return (const char*)outdata;
}
//RC4解密
const char* rc4_decode(const char* outdata,const char* pass){
RC4_KEY key;
int length=strlen(pass);
int len=strlen(outdata);
unsigned char *plain;//分配明文空间
plain=(unsigned char *)malloc(sizeof(unsigned char)*(len+1));
memset(plain,0,len+1);//初始化为0
RC4_set_key(&key,length,(unsigned const char*)pass);//设置密钥
RC4(&key,strlen((char*)outdata),(unsigned const char*)outdata,plain);//解密密文
return (const char*)plain;
}
int main(int argc,char* argv[])
{
const char * a = rc4_encode("这是一个文本","password");
printf("\加密后:%s\n",a);
const char * b = rc4_decode(a,"password");
printf("\解密后:%s\n",b);
}