一、懒汉模式懒汉模式存在线程安全问题1、双重检测锁(一坨)#ifndef DOUBLE_CHECKED_SINGLETON_H
#define DOUBLE_CHECKED_SINGLETON_H
#include <iostream>
#...
阅读全文...
redis安装和基本使用
一、安装redisGitHub地址:https://github.com/redis/redis下载压缩包:https://github.com/redis/redis/archive/refs/tags/7.4.2.tar.gztar -zxvf 7....
阅读全文...
阅读全文...
C++ 报错:fstream打开相对路径文件发生错误
问题:C++使用fstream打开相对路径文件发生错误,只能使用绝对路径,下面是项目结构如上图,原以为相对路径是相对于二进制文件(server-ddz.exe)的路径,所以使用相对路径../config/config.json,但是经过测试,还是相对路径...
阅读全文...
阅读全文...
C++ 报错:‘xxx’ does not name a type
‘xxx’ does not name a type原因是由于头文件互相包含(循环依赖)导致的/mnt/d/a-mycode/C++/DDZ-NET/server-ddz/tcp/include/TcpConnection.h:31:5: error: ...
阅读全文...
阅读全文...
ubuntu彻底卸载MySQL
1. 停止MySQL服务sudo systemctl stop mysql2. 卸载MySQL软件包删除所有MySQL相关的软件包(根据你的安装版本调整包名):sudo apt purge mysql-server mysql-client mysql-...
阅读全文...
阅读全文...
如何在CMake中正确的添加库文件:MSVC与MinGW混用陷阱
记一次在windows+cmake+MinGW环境下使用openssl添加库文件错误的经历一、库文件介绍OpenSSL下载路径:https://slproweb.com/products/Win32OpenSSL.html安装后的库文件是这样的bin目录...
阅读全文...
阅读全文...
C++ 报错:cannot found -lxxx
cannot found -lxxx动态库找不到动态库文件,排查方向在当前CMakeLists.txt文件下使用link_directories指定动态库路径set(PROTOBUF_PATH "D:/protobuf-cpp-3.21.12&...
阅读全文...
阅读全文...
C++ 报错:undefined reference to ‘xxxx’
undefined reference to ‘xxx’函数#情况1,库链接顺序不正确导致,明显特征是报错的函数是我们自己实现的函数,而不是底层函数
[build] D:/a-mycode/C++/DDZ-NET/client-ddz/window/lo...
阅读全文...
阅读全文...
C++封装OpenSSL哈希类
一、 基本用法// 创建MD5哈希对象
CryptographicHash hash(CryptographicHash::HashType::Md5);
// 添加数据
hash.addData("Hello World");
...
阅读全文...
阅读全文...
Qt和OpenSSL进行base64编解码开发
一、基本用法// 发送端对加密后的数据使用base64编码
Base64 base64;
QByteArray encryptData = base64.enCode(reinterpret_cast<char*>(out), outLen)...
阅读全文...
阅读全文...
Qt和OpenSSL进行RSA非对称加解密开发(4)--数字签名和校验
数字签名和校验的流程:计算数据的哈希值,然后对哈希值进行数据签名,数据校验时,也是先计算接受到的数据的哈希值,然后对哈希值进行校验5.1、数据签名5.1.1、哈希值计算Qt的QCryptographicHash提供了一系列的加密算法实现,其中就包括哈希值...
阅读全文...
阅读全文...
Qt和OpenSSL进行RSA非对称加解密开发(3)--数据加解密
4.1使用公钥加密4.1.1、EVP_PKEY_CTX_new用于创建与给定密钥对象(EVP_PKEY)相关联的密钥上下文(EVP_PKEY_CTX)。EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGI...
阅读全文...
阅读全文...
Qt和OpenSSL进行RSA非对称加解密开发(2)--读取或释放密钥对
3.1、从文件中读取密钥对3.1.1、BIO_new_file用于创建适用于文件 I/O 的 BIO 对象,它允许将文件与 BIO 抽象接口结合使用,以便进行读取或写入文件的操作。BIO *BIO_new_file(const char *filenam...
阅读全文...
阅读全文...
Qt和OpenSSL进行RSA非对称加解密开发(1)--生成密钥对
一、基本用法// 生成密钥对
RSACrypto rsa;
rsa.generateRSAKeyPair(RSACrypto::BITS_2K);
// 公钥加密
RSACrypto rsa1("public.pem", RSACr...
阅读全文...
阅读全文...
Qt和OpenSSL进行RSA非对称加解密开发(总)
文章有很多相同函数的解释,建议直接跳到需要学习的目录一、基本用法// 生成密钥对
RSACrypto rsa;
rsa.generateRSAKeyPair(RSACrypto::BITS_2K);
// 公钥加密
RSACrypto rsa1(&qu...
阅读全文...
阅读全文...