自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Openssl学习——x509证书函数

文章目录1.X509概览1.1简介1.2结构1.X509概览1.1简介X.509标准是密码学里公钥证书的格式标准。X.509 证书己应用在包括TLS/SSL(WWW万维网安全浏览的基石)在内的众多 Internet协议里,同时它也有很多非在线的应用场景,比如电子签名服务。X.509证书含有公钥和标识(主机名、组织或个人),并由证书颁发机构(CA)签名(或自签名)。一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息一种非常通用的证书格式,所有的证书都符合X.509 国际

2020-07-23 22:53:50 4381 1

原创 Linux下Stunnel的安装和使用

文章目录1.什么是Stunnnel?1.1介绍1.2功能1.3与Openssl的联系1.4安装1.什么是Stunnnel?1.1介绍Stunnel是一个自由的跨平台软件,用于提供全局的TLS/SSL服务。针对本身无法进行TLS或SSL通信的客户端及服务器,Stunnel可提供安全的加密连接。该软件可在许多操作系统下运行,包括Unix-like系统,以及Windows。Stunnel依赖于某个独立的库,如OpenSSL或者SSLeay,以实现TLS或SSL协议。1.2功能a,针对本身无法进行TLS或

2020-07-15 20:56:08 6101

原创 Linux下使用openssl加密socket

文章目录1.创建证书1.1步骤1.2可能碰到的问题2.客户端和服务器1.客户端1.创建证书1.1步骤1.首先我们需要将之前安装好的openssl文件中的openssl.cnf 拷贝到当前目录下,如图所示:cp /usr/local/ssl/bin/openssl.cnf ./2.接下来就是创建加密所需要的key和CSR文件,分别是:openssl genrsa -des3 -out server.key 1024和openssl rsa -in server.key -out server.key

2020-07-09 10:39:44 1089

原创 利用Openssl自签名证书生成与单双向认证通信

文章目录1.什么是CA?2.如何生成证书2.1生成CA key1.什么是CA?1.CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。2.CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。2.如何生成证书2.1生成CA key1.首先随意创建一个文件夹2.在当前文件夹下输入命令:openssl genrsa -out ca.key 2048(参数说明):1.ge

2020-07-03 22:41:18 954

原创 对称加密和非对称加密学习(一)

文章目录1.对称加密与非对称加密1.1对称加密1.2非对称加密1.3密钥1.对称加密与非对称加密1.1对称加密对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。常见的对称加密算法:DES,AES,3DES等等。对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送

2020-07-03 15:53:16 321

原创 Linux下OpenSSL的介绍和安装

1.OpenSSL简介OpenSSL 是一个功能丰富及自包含的安全开源工具箱,它提供的主要功能为SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能,OpenSSL是一个以C语言作为开发语言的工具包,它支持Linux、UNIX、windows、Mac等平台,所以它具有很好

2020-05-23 15:51:31 1230

原创 TLV协议的装包与解包(C语言)

文章目录1.TLV简介2.TLV的封包3.TLV的解包1.TLV简介TLV :即Tag(Type)-Length-Value,它包含三个域,第一个Tag为要封装的数据的类型域,第二个Length为封装的总的数据长度,第三个Value为要装入数据的值。其实就是一个简单的自定义通信协议,将要传送的数据进行编码组织将其发送出去的过程。这是基本的tlv报文格式,在实际应用中我们可能会碰见在传输过程...

2020-05-06 10:49:48 2090 1

原创 Linux下makefile的简单使用

文章目录为什么要使用make?makefile又是干什么的?Makefile文件编写规范:为什么要使用make?Make命令允许你管理大型程序或一组程序(groups of programs)。当你开始编写大型程序时,你会发现重编译(re-compiling)大型程序比小型程序花费更多的时间。另外也会注意到,你经常仅仅在一小部分程序上工作(例如你正在调试的一个函数),剩余的大部分程序保持不变。...

2020-04-04 23:09:24 658

原创 git提交出现No refs in common and none specified; doing nothing.错误

文章目录1.错误及原因2.解决办法1.错误及原因当我在创建一个新的仓库提交代码,执行完git add *.cgit commiit -m ""git push出现了如下错误造成的原因是:远程存储库上还没有主服务器。2.解决办法执行git push origin master再执行git push即可...

2020-03-29 15:58:10 927

原创 linux下sqlite3的使用实例(c语言)

文章目录一级目录二级目录三级目录1.安装数据库2.创建一个数据库一级目录二级目录三级目录1.安装数据库Linux 下安装sqlite3 需要两个个命令 即可:(1)sudo apt-get install sqlite(2)apt-get install libsqlite3-dev2.创建一个数据库...

2020-03-27 17:11:45 1316

原创 数据结构学习笔记——链表

1.什么是链表?我的理解是:链表就是由一系列的节点组成,而每个节点又包括了两个部分;一部分是数据域,用来储存数据,另一部分指针域,用来指向下一节点。最后把这些节点串起来就形成了链表。1.1节点构造struct list_node{ int data ; // 定义数据域,用于存储数据 struct list_node *next ; //定义指针域,可以用来访...

2020-03-25 21:26:25 387

原创 socket网络编程实现并发服务器——多进程

前言:对之前多进程服务器编写的简单总结。文章目录1.什么是进程?2.创建进程2.1 fork()系统调用2.2 父进程创建子进程过程1.什么是进程?进程是系统中正在运行的一个程序,程序一旦运行就是进程。每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,信号 ,消息队列等。2.创建进程2.1 for...

2020-03-24 21:15:54 446

原创 进程间通信——共享内存

文章目录1.什么是共享内存?2.函数介绍2.1shmget函数2.2shmctl函数2.3shmat函数2.4shmdt函数3.应用实例结果演示1.什么是共享内存?共享内存,就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。因为数据不需要在客户机和服务器之 间复制,所以这是最快的一种 IP...

2020-03-20 20:13:00 439

原创 进程间通信——消息队列

文章目录1.什么是消息队列?2.函数介绍2.1msgget函数2.2msgctl函数2.3msgsnd函数2.4msgrcv函数3.应用实例3.1结果展示1.什么是消息队列?消息队列是消息的链接表 ,存放在内核中并由消息队列标识符标识。我们将称消息队列为“队列”,其标识符为“队列I D”。2.函数介绍2.1msgget函数1,调用的第一个函数通常是m s g g e t,其功能是打开一个...

2020-03-17 20:52:04 287

原创 进程间通信——信号

1,什么是信号信号是软件中断;信号提供了一种处理异步事件的方法:终端用户键入中断键,则会通过信号机构停止一个程序;是一种异步通信方式。2,信号类型Linux下查看支持的信号列表,可以直接输入kill -l;简要说明;名称 说明SIGHUP 终止进程 终端线路挂断SIGINT   终止进程 中...

2020-03-16 15:41:31 428

原创 进程间通信——管道

文章目录1,管道(pipe)1,1介绍1,2创建管道1,3例子1,管道(pipe)1,1介绍管道是最初的Unix IPC(interprocess communication, 进程间通信)形式。由于管道没有名字,只能用在有亲缘关系的进程间通信。管道有两种限制:(1) 它们是半双工的。数据只能在一个方向上流动。(2) 它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,...

2020-03-12 21:52:28 302

原创 socket网络编程实现并发服务器——多线程

线程介绍1,什么是线程线程在操作系统原理中是这样描述的:线程是进程的一条执行路径。线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,所有的线程都是在同一进程空间运行,这也意味着多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(regist...

2020-03-12 11:25:43 693

原创 Wireshark抓包分析TCP记录

文章目录1 tcp协议介绍:2,Wireshark抓包实例2.1三次握手2.2四次握手1 tcp协议介绍:   从“TCP/IP”名字上来看,貌似这只是tcp协议和ip协议,但是实际上,这是很多协议很多协议组成的一个协议集合,我们 把这集合统称为 TCP/IP协议族,简称为TCP/IP协议。对于TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和 数据链路层。通过下图...

2020-03-10 16:31:28 467

原创 socket编程之温度实时监控上报(客户端)

一,首先是客户端需要实现的功能:1, 树莓派上运行socket客户端程序,每隔30秒以字符串“ID/时间/温度”形式上报采样温度,其中ID为树莓派的编号,便于服 务器端区别是哪个树莓派客户端,如“RPI0001/2019-01-05 11:40:30/30.0C”;2, 通过命令行参数指定服务器IP地址和端口以及间隔采样时间;3, 程序放到后台运行,并通过syslog记录程序的运行出错、调...

2020-02-29 22:11:12 693

原创 socket网络编程实现并发服务器——IO多路复用

一 五种网络I/O模型在Linux下进行网络编程时,服务器端编程经常需要构造高性能的IO模型,常见的IO模型有五种:(1)同步阻塞IO(2)同步非阻塞IO(Non-blocking IO)(3)IO多路复用(IO Multiplexing):IO多路复用模型是建立在内核提供的多路分离函数select基础之上的,使用select函数 可以避免同步非阻塞IO模型中轮询等待的问题,此外pol...

2020-02-28 21:37:54 951

原创 socket编程之温度实时监控上报(服务器)(多进程)

12

2020-02-20 09:49:54 507 1

原创 如何使用GIt将代码上传码云

1为什么要用GIT来管理代码?2git上传代码步骤:1,首先需要在git服务器上创建自己的账户。(下面是各种git工具的下载网站:码云 https://gitee.com/github https://github.com/gitlab https://about.gitlab.com/sourceforge https://sourceforge.net/google code h...

2020-02-19 20:56:19 299

原创 安装crosstool并用其制作交叉编译器

安装1.利用命令:git clone git://crosstool-ng.org/crosstool-ng因为ubuntu上面默认没有安装git工具,需要提前安装,命令:sudo apt-get install git2.下载完成后,解压到用户目录,转到crosstool-ng-1.20.0目录。3.执行文件中的bootstrap文件,会提示你没有安装编译必要的程序。利用sud...

2019-11-12 20:22:12 605

空空如也

空空如也

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

TA关注的人

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