调用OpenSSL实现RC4

  • 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 256using 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调试器,进行调试
成功运行,并且无报错!

调用OpenSSL实现RC4算法(详细步骤)相关推荐

  1. Java调用c/c++(JNI)最详细步骤

    一.JNI(Java Native Interface)的作用就是Java通过JNI调用其他语言的函数(或方法)(主要是C&C++). 二.准备 1. java8系列jdk,有很多版本,任选一 ...

  2. html css js调用dll,node调用dll 方法,及详细步骤

    Node – Dll Node调用DLL 1.DLL介绍 DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型.在Windo ...

  3. qt单步调试linux程序,用Qt 调用GDB调试 Arm程序 详细步骤----可单步执行每一行

    前言 本人交叉编译环境 Ubuntu 10.04(虚拟机),编译工具链 arm-hisiv100nptl-linux,Qt 4.8.5 ,QtCreator1.3.1 1.在虚拟机Ubuntu 10. ...

  4. myeclipse连接mysql怎么调用_myeclipse连接mysql数据库详细步骤

    第一步 打开Database  windows-prefenrence-showview-DBbrowser ,此时会在工具底部有个DBbrowser ,选中它,再它所控制的页面的任意位置 右击new ...

  5. VB.net参数化界面调用ANSYS求解的详细步骤及错误提示的解决办法

    VB.net参数化界面调用ANSYS求解的详细步骤及错误提示的解决办法 微软旗下.net平台凭其易操作性.功能强大备受现代码农的喜爱,vb作为一门面向对象的程序语言,有着强大的功能和相对简单的操作,v ...

  6. 单源最短路径Dijkstra算法的思想、详细步骤、代码

    目录 一.算法思想 二.算法详细步骤 三.伪代码 + C++代码 四.算法复杂度分析 五.算法改进 六.应用案例 一.算法思想 1.Dijkstra 算法是用来求解单源最短路径问题的经典算法,其本质上 ...

  7. RC4(原理+代码+调用openssl库+报错分析)

    目录 一.原理 1.流密码的基本思想 2.RC4流密码算法的原理 1.初始化数据表S和T 2.初始置换数据表S(密钥调度算法) 3.生成密钥流(伪随机数生成算法) 二.代码实现 三.调用openssl ...

  8. 排序算法 快速排序【详细步骤图解】

    排序算法 快速排序[详细步骤图解] 快速排序 主要思想 图解 第一轮分割序列 第二轮分割序列 --- 左子序列 小结 第三轮分割序列 --- 右子序列 C++实现 总结 快速排序 给定一个序列:22 ...

  9. 详细的KNN算法原理步骤

    KNN算法原理详解 KNN算法 1.1 解决监督学习中分类问题的一般步骤 1.2 什么是消极(惰性)的学习方法 2 首先从一个实例讲起 3 KNN分类算法入门 3.1.1算法综述 3.1.2算法思想 ...

最新文章

  1. 如果卷积神经网络存在根本性的缺陷,你会怎么看?
  2. VMware Workstation 6.0全貌概览
  3. 我的本地化关于NSDefaults
  4. yarn client 提交任务
  5. JMS学习(4):--Spring和ActiveMQ整合的完整实例
  6. QT创建文件夹(QDir方式)
  7. 计算机应用决策支持系统,计算机决策支持系统技术及应用研究
  8. HTML5 3D棒球游戏截图
  9. 创建一个员工类(Employee),其中包括:1) 4个私有属性:员工姓名(name)、员工年龄(age)、员工职位(position)、工资(salary)
  10. jetbrain秘密路径
  11. Today is my brithday~~~~!
  12. 双偶幻方的c语言算法,单偶阶、双偶阶幻方的巧妙填法
  13. 破解PPT密码/改只读为可编辑PPT
  14. 灭屏流程 - 安卓R
  15. 喏,你们要的58条 Allegro 使用技巧汇总整理好了
  16. C++实现 L1-040 最佳情侣身高差 (10分)
  17. 传美光科技竞标尔必达获胜 收购金额25亿美元
  18. Linux 下C/C++实现发送ICMP和ICMPv6(报文分析)
  19. video 宽高自适应_HTML5/CSS/jQuery video大小屏幕自适应及获取视频宽高
  20. 【学习】对产品经理的认知

热门文章

  1. 怎么查询服务器版本信息失败,我更新的时候总是说连接版本检测服务器失败请 – 手机爱问...
  2. linux怎么查询mysql服务端口占用_LINUX中如何查看某个端口是否被占用的方法
  3. 【软考】--结构化分析设计
  4. React项目报错: __WEBPACK_IMPORTED_MODULE_3_react___default.a.memo is not a function
  5. 翻回头看自己走过的路
  6. 免费的SEO在线工具
  7. Java求两点的中点坐标_如何找到一些GPS点的中点/坐标?
  8. ytu一c语言实验一保留整数
  9. 天猫精灵+ESP8266+WS2812远程氛围灯
  10. Rundeck部署和基本使用