万捷博客

万捷博客
一个知识汇聚的地方
首页 » c++ » C++通过openssl实现RC4算法加密解密

C++通过openssl实现RC4算法加密解密

 

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

文章如无特别注明均为原创! 作者: admin, 转载或复制请以 超链接形式 并注明出处 万捷博客
原文地址《 C++通过openssl实现RC4算法加密解密》发布于2019-6-23

打赏作者

评论

游客

看不清楚?点图切换
切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册