调用OpenSSL实现RC4
OpenSSL实现RC4算法
实验环境简介
Win10操作系统;
Visual studio 2022;
OpenSSL1.1.1stable版本
实验源码
#pragma comment(lib,"libssl.lib")
#pragma comment(lib,"libcrypto.lib")
#pragma warning(disable 4996)
#include<openssl/rc4.h>
#include<iostream>
#define n 256
using namespace std;
int main()
{
printf("请输入密钥:\n");
unsigned char* key = new unsigned char[n + 1];
cin >> key;
string str;
printf("请输入加密信息:\n");
cin >> str;
unsigned char mes[30];
RC4_KEY enkey, dekey;
RC4_set_key(&enkey, n + 1, key);
RC4_set_key(&dekey, n + 1, key);
for (int i = 0; i < str.size(); i++)
{
mes[i] = (unsigned char)str[i];//转置到需要的形式
}
unsigned char c_text[30];//密文
unsigned char p_text[30];//明文
RC4(&enkey, str.size(), mes, c_text);
c_text[str.size()] = '\0';//字串结束位置为0,防止过多输出
cout << endl << c_text << endl;
RC4(&dekey, str.size(), c_text, p_text);
p_text[str.size()] = '\0';
cout << endl << p_text << endl;
return 0;
}
实验详细步骤
按着这个步骤来做应该没有错误,可能错误的部分我也强调了
1.首先打开visual studio 2022,选择创建新项目
点击控制台应用,然后下一步
设置项目名称后点击创建,此处以test为例
2.将OpenSSL库包含到项目中
2.1在打开后的test项目的最上方点击"项目"
2.2在二级菜单中点击"test属性 Alt+F7"选项
2.3出现下图所示属性页
2.4选择VC++目录
找到常规当中的,包含目录和库目录两个选项
选择编辑,将下载好的openssl文件中的lib和include文件夹分别添加到包含目录和库目录中,然后点击确认
注意:此处如果test属性页上方的配置和平台不是所有配置和所有平台,将其手动改成所有配置和所有平台
2.5找到所下载的OpenSSL文件夹
在OpenSSL文件夹的下属文件夹中,找到lib文件夹
将lib文件夹中libcrypto.lib和libssl.lib文件复制到test项目的文件夹当中
2.6将上文给的实验源码复制到test项目中的test.cpp文件当中
注意:此处选择与自己下载openssl版本相同的位数,我所下载的是x64版本,故在此处也选择x64
如果位数不匹配会出现下列错误
然后点击本地的Windows调试器,进行调试
成功运行,并且无报错!