13 fengbingchun

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 72

基于BearSSL实现自签名证书双向认证测试代码

客户端、服务器端双向认证大致过程:可以参考:https://blog.csdn.net/fengbingchun/article/details/106856332(1). 客户端发起连接请求;(2). 服务器端返回消息,包含服务器端证书server.crt;(3). 客户端验证服务器端证书server.crt的合法性;(4). 客户端向服务器端发送客户端证书client.crt;(5). 服务器端验证客户端证书client.crt,并将选定的加密方案发给客户端;(6). 客户端发送

2020-09-15 10:19:59

汇编程序设计与计算机体系结构软件工程师教程笔记:总结

《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了NASM和MASM,测试代码仅支持Windows和Linux的x86_64。这里是基于之前所有笔记的简单总结,笔记列表如下:处理器、寄存器简介:https://blo

2020-09-12 20:45:54

汇编程序设计与计算机体系结构软件工程师教程笔记:其它架构

10. 与处理器及体系结构有关的高级话题10.2 处理器与系统的性能系统寄存器:包括下面几组:(1).控制寄存器(control register):用来表示处理器的模式以及与当前正在执行的任务有关的一些特征:cr0至cr4,其中cr1暂时保留不用;cr8寄存器,也叫作任务优先级寄存器(task priority register, TPR),用来安排外部中断的优先顺序,该寄存器只在64位模式下使用。(2).内存管理寄存器(memory-management register):用来指出保护

2020-09-12 10:28:16

汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏

《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了MASM和NASM,测试代码仅支持Windows和Linux的x86_64。9. 内联汇编与宏9.2 内联汇编:是一种在高级语言中嵌入汇编代码的办法。还有一种办法也能

2020-09-05 17:10:33

汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算

《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了NASM和MASM,测试代码仅支持Windows和Linux的x86_64。6. 函数6.2 栈内存入门:栈内存(stack memory)是为自动变量而设的一块区域

2020-09-05 14:35:04

汇编程序设计与计算机体系结构软件工程师教程笔记:指令

《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了NASM和MASM,测试代码仅支持Windows和Linux的x86_64。4. 基本指令4.1 简介:在很多情况下,MASM会根据上下文来推测指令中的操作数是什

2020-08-24 17:25:11

汇编程序设计与计算机体系结构软件工程师教程笔记:汇编语法基础知识

《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了NASM和MASM,测试代码仅支持Windows和Linux的x86_64。3. 汇编语言及其语法的基础知识3.2 基本元素:汇编代码的五大支柱:保留字(rese

2020-08-22 11:48:45

汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介

《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了NASM和MASM,测试代码仅支持Windows和Linux的x86_64。1. 编程语言及数据的基础知识1.1 开篇语:GNU Assembler(GAS)是一

2020-08-22 10:41:23

王爽著的《汇编语言》第3版笔记

王爽著的《汇编语言》(第3版)于2013年出版,虽然是2013年出版的,但书中部分内容感觉已过时:(1). 基于intel 8086 CPU介绍,intel 8086是英特尔公司上个世纪生产的芯片,是16位的,早已停产;(2). 现在PC机上的intel CPU都是intel core i5, i7等,大部分都是64位的,书中介绍的代码段在现在的PC机上基于vs根本无法编译,而且有些语法在现代汇编语言中应该也不在支持。以下是对书中内容的摘记:注:基于intel 8086 CPU1. 基础知识

2020-08-15 10:31:52

Ubuntu上Vim安装NERDTree插件操作步骤

NERDTree是Vim的文件系统浏览器,使用此插件,用户可以直观地浏览复杂的目录层次结构,快速打开文件以进行读取或编辑,以及执行基本的文件系统操作。NERDTree源码在https://github.com/preservim/nerdtree。这里通过Vundle安装NERDTree,Vundle是Vim软件包的缩写,是Vim插件管理器。Vundle源码在https://github.com/VundleVim/Vundle.vim。安装Vundle:(1). 执行如下命令:mkdir

2020-08-13 19:18:50

Windows/Linux TCP Socket网络编程简介及测试代码

典型的网络应用是由一对程序(即客户程序和服务器程序)组成的,它们位于两个不同的端系统中。当运行这两个程序时,创建了一个客户进程和一个服务器进程,同时它们通过从套接字(socket)读出和写入数据在彼此之间进行通信。开发者创建一个网络应用时,其主要任务就是编写客户程序和服务器程序的代码。网络应用程序有两类。一类是由协议标准(如一个RFC或某种其它标准文档)中所定义的操作的实现,这样的应用程序有时称为”开放”的,因为定义其操作的这些规则为人们所共知。对于这样的实现,客户程序和服务器程序必须遵守由该RFC所规

2020-08-07 09:23:44

使用OpenSSL生成自签名证书相关命令

在用于小范围测试等目的的时候,用户也可以自己生成数字证书,但没有任何可信赖的机构签名,此类数字证书称为自签名证书。证书一般采用X.509标准格式。下面通过OpenSSL相关命令介绍如何生成自签证书。1. 生成自签名根证书(一级证书):(1).产生长度为2048的rsa私钥root.key,PEM格式:LD_LIBRARY_PATH=../lib ./openssl genrsa -out root.key 2048(2).验证私钥root.key:执行结果如下图所示LD_LIBRAR

2020-07-16 18:46:30

C和C++安全编码笔记:总结

《C和C++安全编码》(原书第2版)这本书是2013年出版的。这里是基于之前所有笔记的简单总结,笔记列表如下:字符串:https://blog.csdn.net/fengbingchun/article/details/105325508指针诡计:https://blog.csdn.net/fengbingchun/article/details/105458861动态内存管理:https://blog.csdn.net/fengbingchun/article/details/105921

2020-07-11 11:49:24

C和C++安全编码笔记:文件I/O

C和C++程序通常会对文件进行读写,并将此作为它们正常操作的一部分。不计其数的漏洞正是由这些程序与文件系统(其操作由底层操作系统定义)交互方式的不规则性而产生的。这些漏洞最常由文件的识别问题、特权管理不善,以及竞争条件导致。8.1 文件I/O基础:安全地执行文件I/O会是一项艰巨的任务,一方面是因为有这么多的接口、操作系统和文件系统的变化。最重要的是,每种操作系统都可以用各种各样的文件系统。文件系统:许多UNIX和类UNIX操作系统都使用UNIX文件系统(UNIX File System, UFS)

2020-07-05 14:06:09

C++中获取日期函数gmtime和localtime区别

函数gmtime和localtime的声明如下:struct tm * gmtime (const time_t * timer);struct tm * localtime (const time_t * timer);它们均接收一个time_t的const指针类型,time_t类型通常是一个大整数值,该整数值表示自UTC时间1970年1月1日00:00以来经过的秒数即UNIX时间戳,可直接调用time函数获取,如下面测试代码中的time(&rawtime)语句。它们均返回类型为t

2020-06-29 16:57:09

C和C++安全编码笔记:并发

并发是一种系统属性,它是指系统中几个计算同时执行,并可能彼此交互。一个并发程序通常使用顺序线程和(或)进程的一些组合来执行计算,其中每个线程和进程执行可以在逻辑上并行执行的计算。这些进程和(或)线程可以在单处理器系统上使用分时抢占式的方式(用一种时间分片的方法使每个线程和(或)进程中的执行步骤交错进行)、在多核/多处理器系统中,或者在一个分布式计算系统中执行。多个控制流并发执行是现代计算环境的重要组成部分。7.1 多线程:多线程不一定是并发的。一个多线程程序可以以这样一种方式构建,即它的线程不会并发执行

2020-06-25 21:25:05

SSL/TLS单向认证和双向认证介绍

为了便于理解SSL/TLS的单向认证和双向认证执行流程,这里先介绍一些术语。1. 散列函数(Hash function):又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字”指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values, hash codes, hash sums)的指纹。散列值通常用一个短的随机字母和数字组成的字符串代表。好的散列函数在输入域中很少出现散列冲突。散列函数的工作原理如下

2020-06-19 15:05:20

JWT(JSON Web Token)简介及实现

JWT(JSON Web Token):是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为Json对象安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用HMAC SHA256或RSA等对JWT进行签名。JWT的组成:它是一个很长的字符串,中间用点(.)分隔成三个部分。它的三个部分依次是:Header(头部)、Payload(载荷)、Signature(签名)。JWT默认是不加密的。Header:是一个Json对象,描述JWT的元数据,例子如

2020-06-16 14:38:37

C和C++安全编码笔记:格式化输出

C标准中定义了一些可以接受可变数量参数的格式化输出参数,参数中包括一个格式字符串。printf()和sprintf()都是格式化输出函数的例子。格式化输出函数是由一个格式字符串和可变数目的参数构成的。在效果上,格式化字符串提供了一组可以由格式化输出函数解释执行的指令。因此,用户可以通过控制格式字符串的内容来控制格式化输出函数的执行。格式化输出函数是一个变参函数,也就是说它接受的参数个数是可变的。变参函数在C语言中实现的局限性导致格式化输出函数的使用中容易产生漏洞。6.1 变参函数:<stdarg.

2020-06-13 10:39:01

通过OpenSSL的接口实现Base64编解码

对openssl genrsa产生的rsa私钥pem文件,使用普通的base64解码会有问题,如使用https://blog.csdn.net/fengbingchun/article/details/85218653 中介绍的方法,一是有可能不能从返回的结果中直接使用strlen来获得最终字符的大小,因为返回的结果中可能会有0x00;二是pem文件中会有换行符,每行的字节长度超过64个字节就会有换行,普通的base64解码中不会对换行符有处理。在OpenSSL中,默认情况下,base64行长度限制为64个

2020-06-05 15:54:08

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力计划专属勋章
    原力计划专属勋章
    2019年《原力计划【第一季】》专属勋章,现已经开启第二季活动啦,小伙伴们快去参加吧
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享精英
    分享精英
    成功上传11个资源即可获取