Qt之OpenSSL(有pro文件的路径格式,以及对libeay32和ssleay32的引用)
简述
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
下载安装
进入Win32 OpenSSL下载页面,选择适合自己的版本进行下载。
下载完成之后进行安装,我选择的目录为D:\Program Files\OpenSSL-Win32。进入安装目录,可以看到主要包含以下文件夹:
lib:包含了所有的库文件(例如:libeay32.lib、ssleay32.lib)。
include:包含了所有的头文件(例如:aes.h、md5.h)。
bin:包含了测试程序、存储证书和密钥的文件(*.pem)。
使用
在pro中包含库文件与路径。
LIBS += -L"D:/Program Files/OpenSSL-Win32/lib" -llibeay32
LIBS += -L"D:/Program Files/OpenSSL-Win32/lib" -lssleay32
INCLUDEPATH += $$quote(D:/Program Files/OpenSSL-Win32/include)
然后就可以使用了,下面用sha256为例来对字符串进行加密
#include <openssl/ssl.h>
std::string sha256(const std::string str)
{
char buf[2];
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, str.c_str(), str.size());
SHA256_Final(hash, &sha256);
std::string newString = "";
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
sprintf(buf,"%02x",hash[i]);
newString = newString + buf;
}
return newString;
}
以”Hello World”为例,来进行验证。
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::string str = "Hello World";
qDebug() << QString::fromStdString(sha256(str));
return a.exec();
}
输出结果:”a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e”
为了确定输出是否正确,我们可以在网上进行在线验证。
更多参考
- OpenSSL
- How to Include OpenSSL in a Qt project
- Building OpenSSL for Visual Studio
- 如何在Windows下编译OpenSSL?
http://blog.csdn.net/liang19890820/article/details/51611400
Qt之OpenSSL(有pro文件的路径格式,以及对libeay32和ssleay32的引用)的更多相关文章
- Qt之OpenSSL(有pro文件的路径格式)
简述 OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 简述 下载安装 使用 更多参考 下载安装 ...
- Qt Creater中的.pro文件和.pri文件
初学Qt,使用Qt Creater打开Demo "QT 3D Basic Shapes C++ Example",发现除了pro文件外,还有一个pri文件,在此小白一下! *.pr ...
- Qt工程pro文件的简单配置(尤其是第三方头文件和库)
Qt开发中,pro文件是对正工程所有源码.编译.资源.目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置) 注释 以”#”开始的行 ...
- [QT]简单介绍一下 *.pro、*.pri、*.prf、*.prl等四种文件
转自:http://blog.csdn.net/dbzhang800/article/details/6348432 简单介绍一下 *.pro.*.pri.*.prf.*.prl等四种文件:干嘛用的, ...
- Qt中 .pro 文件和 .pri 文件简介
*.pro 这是一个典型的Qt示例程序的.pro文件(propriprfprl.pro): TEMPLATE = app CONFIG += QT QT += core gui TARGET = pr ...
- qmake 时复制文件(自动在编译前做一些操作,且写在.pro文件里)
有时在编译前需要准备一些文件,例如修改了 QtCreator 的编译输出目录: Build & Run > Default build directory,使用 Promote 后需要在 ...
- 非GUI-Qt程序运行后显示Console(简单好用:在pro文件中加入: CONFIG += console)
----我的生活,我的点点滴滴!! 有很多时候,我们在程序中添加了好Debug信息,方便程序在运行期间打印出一些我们需要的信息或者,想用他来显示一些必要信息时, 那么console就太重要了,曾几何时 ...
- 关于QT中.pro文件中的相对路径
被.pro文件中的相对路径给整糊涂了,仔细研究后,原来.pro文件中有两种相对路径. 一种情况下./表示.pro文件所在的目录 另一种情况下./表示构建生成目录 INCLUDEPATH SOURCE ...
- Qt 工程 pro文件
工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下.于此备录,分享共勉. 为了更好的理解,先创建一个简单的工程作为实践. [1]创建一个pro文件 1.1 新建proDemo工程.步骤如下: ...
随机推荐
- CentOS 挂载iso文件配置yum源
1.挂载iso 准备好centos的光盘镜像 挂载前的准备; mkdir -p /dev/centos mkdir -p /mnt/local_yum 挂载 mount -o loop /opt/s ...
- 快速删除 jar 里面的 BuildConfig.class
快速删除 jar 里面的 BuildConfig.class 起因:多个 jar 包里面的 BuildConfig.class 文件导致编译冲突. 方法一:土方法 使用 jar 解包 jar xf x ...
- telnet 的使用(ping 与 telnet)
基本用法 >> telnet localhost 23 // 23 表示 telnet 服务的端口号,不写端口号也可以,telnet 默认绑定的端口号就是 23 // netstat -a ...
- CLR托管内存
在物理内存中观察CLR托管内存及GC行为 虽然看了一些书,还网络上的一些博文,不过对CLR托管内存细节依然比较模糊.而且因为工作原因总会有很多质疑,想要亲眼看到内存里二进制数据的变化. 所以借助w ...
- 11991 - Easy Problem from Rujia Liu?(的基础数据结构)
UVA 11991 - Easy Problem from Rujia Liu? 题目链接 题意:给一个长度n的序列,有m询问,每一个询问会问第k个出现的数字的下标是多少 思路:用map和vector ...
- android隐藏显示小键盘
记录一下开发中虚拟键盘的使用,fragment和activity中不同的使用 fragment下点击其它位置隐藏小键盘,复制到initView()方法中 view.setOnTouchListener ...
- Java并发编程:synchronized和Lock
转自 : http://www.tuicool.com/articles/qYFzUjf
- Leetcode 319 Bulb Switcher 找规律
有n盏关着的灯,第k轮把序号为k倍数的关着的灯打开,开着的灯关闭. class Solution { public: int bulbSwitch(int n) { return (int)sqrt( ...
- Bootstrap Button 使用方法
Getting Started <!-- basic button --> <com.beardedhen.androidbootstrap.BootstrapButton andr ...
- 信号、系统与滤波器设计(matlab)
0. 基本概念 AWG:Additive White(zero-mean) Gaussian,可加白噪声: AWGN:Additive White(zero-mean) Gaussian Noise ...