#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);
}