自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 SHA1和MD5

MD5和SHA1的C++实现

2022-03-01 10:31:46 481 1

转载 linux内核路由机制

Linux默认有三种策略路由:本地路由,主路由和默认路由那么与之对应的就是三张路由表:本地路由表,主路由表和默认路由表。我们需要学习路由怎么转的过程。在这之前,先看看所涉及数据结构有哪些struct hlist_head { struct hlist_node *first;};struct hlist_node { struct hlist_node *next, **pprev; // 看这个你就知道,内核链表一般是双向链表(其实还是循环...

2021-12-30 11:40:37 788 1

原创 https协议

前面写了一份HTTP协议的文档后面我再写一份关于HTTPS协议的文档,说明下与HTTP的区别与功能HTTPS协议由于HTTP的内容在网络上实际是明文传输,并且也没有身份验证之类的安全措施,所以容易遭到挟持与攻击HTTPS是通过SSL(安全套接层)和TLS(安全传输协议)的组合使用,加密TCP载荷即HTTP报文内容,同时通过不对称密钥方式认证身份,保证传输的安全可靠即:HTTP+加密+认证+完整性保护=HTTPS对称加密与非对称加密对称加密:编/解码使用相同密钥的算法,一般是共

2020-09-22 12:48:55 160 1

原创 http协议详解

HTTP和HTTPS协议在我们日常生活中都会见到,但是可能有些人都不太清楚这两个协议什么意思,又有什么区别,下面我详细介绍一下,说的不好的,麻烦指证1.HTTP协议超文本传输协议(英文:HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定..

2020-09-22 11:29:12 303

原创 QT的输出日志保存到文件内

QT日志写入文件将qt文件一些qDebug,qWarning,qError输出的信息保存到指定文件内#include "basiclogging.h"#include <QDebug>#include <QDir>QString BasicLogging::logFilePath = "LogFile_Printer";//指定文件路径 当前目录下的BasicLogging::BasicLogging(){ }void BasicLogging::s

2020-09-10 08:31:08 1151

原创 C++智能指针

C++智能指针C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。理解智能指针需要从下面三个层次:从较浅的...

2020-08-17 09:15:23 140

原创 二进制兼容

二级制兼容二进制兼容ABI(application binary interface)主要指动态库文件单独升级,现有用到老动态库的应用程序是否受到影响。在linux系统升级动态库文件可能会出现这种情况下面介绍一下什么是二进制兼容,又为什么会出现这种情况二进制兼容:1 升级库文件,不影响使用库文件的程序。(说明)2 新库必然有新头文件,但是旧的二进制可执行文件还是按照旧的头文件中的“使用说明”来调用库。(原因)会出现二进制兼容的几个具体情况1.类普通成员函数 void fu

2020-08-17 09:13:03 740

原创 在虚拟机内编译QT程序 内存不足 Cannot allocate memory:

解决方法在执行free -m的是时候提示Cannot allocate memory:(swap文件可以放在自己喜欢的位置如/var/swap)sudo mkdir /opt/images/sudo rm -rf /opt/images/swapsudo dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000sudo mkswap /opt/images/swapsudo swapon /opt/ima...

2020-06-05 16:03:27 1076

原创 vector容器

容器(containers)VectorVector:向量(Vector)是一个封装了动态大小数组的顺序容器,跟任意其它类型容器一样,它能够存放任意类型的对象。特性:1.顺序序列顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。2.动态数组支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删除元素...

2019-09-18 00:47:01 165

转载 数据库操作语句

1.创建/删除数据库CREATE DATABASE database-name //创建drop DATABASE database-name //删除2.创建/删除表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) //创建{列后加:primary key/...

2019-02-19 11:20:16 2196

原创 排序算法简单说明

冒泡排序:左右比较交换选择排序:获取最小(大)数在m位置,交换n和m位置,再从n+1位置重新开始插入排序:将下个数字与前面已排序序的序列依次向前比较,若比其小,交换,若比其大退出,从已派好序的下一个重新开始希尔排序: 选择一个增量序列t1,t2,…,tk,其中ti&gt;tj,tk=1; 按增量序列个数k,对序列进行k 趟排序; 每趟排序,根据对应的增量ti,将...

2019-02-18 14:05:35 196

原创 常见的加密和解密算法—AES

AES加密概述       高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在20...

2019-02-18 10:41:23 1151

原创 libevent服务端设计(添加服务端发送消息)

 1 libevent介绍和安装介绍libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制,来编译相应的代码,从而在libevent接口上保持一致。在当前的服务器上,面对的主要问题就是要能处理大量的连接。而通过libevent这个网络库,我们就可以调用它的...

2019-02-14 14:49:35 871

原创 C++下字符串与无符号数之间的转换

/** * @brief GetString0x16 byte数组转string(16进制格式) * @param bArray 数组 * @param bArray_len 数组长度 * @param offset 偏移量 * @param size 待处理字节数 * @return 16进制形式字符串 */ ...

2019-02-14 13:59:07 2302

原创 C++编写的常见排序代码

堆排序:void HeapAdjust(int *array, int parent, int length){ int temp = array[parent]; // temp保存当前父节点 int child = 2 * parent + 1; // 先获得左孩子 while (child &lt; length) { // 如果有右孩子结点,并...

2019-02-14 13:40:30 486

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除