- 博客(223)
- 资源 (13)
- 收藏
- 关注
转载 密码学基础之ASN.1编码
x为0x03,二进制为 00000011,但是x不能编码出401,需要和y一起编码才能表示401,因此需要将x的最高位替换为1,表示后面还有字节来编码401,替换后为10000011,编码为0x83,y为17,二进制为 00010001,x和y可以成功编码出401,后面没有其他数据了,y就不需要替换最高位,直接编码为 0x11,则401的最终编码为 0x83,0x11。因为整数值的最高位表示正负数,AB值的最高位为1,如果不填充00,就会把AB开始的Value值当作负数处理,因此最高位填充00,表示正数。
2025-01-07 15:30:43
401
转载 详解国密SM2的数字签名
RSA数字签名算法和RSA加密算法相似,不同的是,RSA加密算法是公钥加密,私钥解密,而RSA签名算法是私钥签名,公钥验证签名。在前面的文章我说过,SM2实际上就是一种椭圆曲线(EC)密码算法,所以这里先详细说说标准的ECDSA算法,然后再说说SM2数字签名算法和ECDSA算法有哪些差别。虽然SM2数字签名算法的计算步骤有所差别,但ECDSA中的基本运算,比如大数的加减乘除、曲线的乘积、取模运算都可以重用,所以实现起来也不是很困难。下面的步骤中,M是消息,HASH(M)是对消息进行摘要运算。
2024-12-20 11:28:16
533
转载 国密起步4:GmSSL3生成证书并使用tls(SM2、SSL)
转自:国密起步4:GmSSL3生成证书并使用tls(SM2、SSL)-CSDN博客此文介绍如何使用gmssl的tls示例。一、GmSSL的源码结构 下载过来的目录结构如下: .vs是我加的,因为我习惯用visual studio查看源代码。include 头文件src C文件tests 测试代码tools 工具的代码,对应gmssl命令的command二、gmssl命令 安装完成就可以在系统里直接使用gmssl命令了:user@
2024-12-17 16:12:04
384
1
转载 Windows下编译GmSSL源码
(1)解压GmSSL-3.1.1.zip,如: D:\MyWork\SVN_CGS\GmSSL\GmSSL-3.1.1_x64\GmSSL-3.1.1。(1)解压GmSSL-3.1.1.zip,如: D:\MyWork\SVN_CGS\GmSSL\GmSSL-3.1.1_x86\GmSSL-3.1.1。下载地址:https://github.com/guanzhi/GmSSL。(3)输入命令进入到GmSSL-3.1.1的目录中。(3)输入命令进入到GmSSL-3.1.1的目录中。
2024-12-17 14:20:30
185
转载 使用xshell远程连接linux服务器慢问题解决
连的远程的linux服务器,在经过别人修改过服务器ip配置后,使用ssh连接服务器,或者vs2019远程连接服务器进行编译,都变得奇慢无比,根本没发干活。上网一查,就看到有说ssh每次连接服务器时ssh服务器端都会自动检查dns环境是否一致。在按照上文修改了usedns为no后,连接远程服务器变得畅快无比,问题解决!最近一段时间在研究docker的使用时,在VM中安装了CentOS 7.6,配置了静态IP,使用Xshell连接虚拟机,发现响应的速度特别慢,大概得有10秒钟才能连上。# 重启ssh服务即可。
2024-11-18 09:19:07
202
转载 详解CMakeLists.txt
CMakeLists.txt文件通常位于项目的顶层目录,并可在子目录中包含其他的CMakeLists.txt文件以组织复杂项目的构建过程。虽然基本语法并不复杂,但组合使用也是变化繁多,再加上还有各种内置变量,实际大型项目中的CMakeLists.txt可能非常复杂,需要持续认真学习和积累。这个示例中,我们创建了一个基于C语言的名为"MyProject"的项目,设置了C11标准,并添加了一个名为"MyLibrary"的静态库。# 添加子目录,子目录下应包含自己的CMakeLists.txt文件。
2024-10-24 10:00:16
455
转载 Visual Studio连接Linux服务器编译CMake项目,生成在Linux上运行的程序
系统上是否安装了最新版本的 CMake。>>>>>>>>>>>>>> 中间的安装过程省略 中间的安装过程省略 中间的安装过程省略 中间的安装过程省略 省略部分内容显示 省略部分内容显示
2024-10-23 17:58:54
451
原创 linux下使用iconv库来将中文字符转换成utf8
outbytesleft:指向一个 size_t 变量的指针,该变量表示输出缓冲区中剩余的字节数。inbytesleft:指向一个 size_t 变量的指针,该变量表示 inbuf 中剩余的字节数。在调用 iconv() 之前,这个指针应该指向输出缓冲区的起始位置。在调用 iconv() 之前,这个指针应该指向要转换的数据的起始位置。在函数调用后,它将被更新为指向尚未转换的数据的下一个位置。cd:由 iconv_open() 返回的转换描述符,它指定了源编码和目标编码。
2024-10-23 15:02:30
867
转载 grpc使用教程
当用protocol buffer编译器来运行.proto文件时,编译器将生成所选择语言的代码,这些代码可以操作在.proto文件中定义的消息 类型,包括获取、设置字段值,将消息序列化到一个输出流中,以及从一个输入流中解析消息。生成C++代码IM.Login.pb.h和IM.Login.pb.cc, IM.Login.grpc.pb.h和IM.Login.grpc.pb.cc。1.对C++来说,编译器会为每个.proto文件生成一个.h文件和一个.cc文件,.proto文件中的每一个消息有一个对应的类。
2024-10-10 11:38:15
430
转载 Cannot run compiler ‘cl‘
设置好cl.exe文件路径到环境变量的系统path后,重启creator,即能正常编译vs的工程,我用的是qt vs 2019。1.在everything.exe中查找cl.exe出来后,找到对应的vs版本的目录,如下,即能够正常解析.pro文件了。3.重启打开qt工程,选择。
2024-10-09 15:36:09
330
转载 新手小白Windows下gRPC编译操作详解~ 【v1.62.0 步骤详细】
很早之前在实习的时候就用到了一些gRPC相关的内容,当时也是编译鼓捣了好久总是这里有问题那里有问题,搜索一些博客的时候也总是会遇到一些博客中没有的问题,或者弄不明白每一步都是在干嘛,很多时候都是一些非常细小的地方出错误,最近又需要用到gRPC,又自己编译了一次,感觉整个过程清晰明了许多,做个记录~这一步需要的时间较长,我大概用了30多分钟,在编译过程中,可能会遇到堆栈异常xxx提前退出的错误、或许电脑也会变得异常卡顿,这大概是因为内存不够用了,关掉一些其它应用进程,重新进行编译即可。
2024-10-09 14:08:02
235
转载 Windows核心编程_HOOK(续)_APIHOOK
答:当我们发布了一个大型的应用程序,当我们发现了严重的漏洞后,是应用程序里的某个API思路的问题,我们可以通过此方式拦截这个API然后执行我们补丁里新的API达到修复漏洞的方式,因为一个应用程序那么大,出了漏洞,如果让用户重新安装,过于麻烦,不如写一个小型补丁来修补应用程序上的问题,就好像一条渔网,漏网了,如果我们要换个网的话,需要去重新编网或者去买一个,然后在拿回来这个过程,成本就已经算在里了,不如直接用胶带之类的绑起来,然后在慢慢换新的!当然这只是一个比喻!修改方法可以参考博主写的游戏修改器的文章!
2024-10-08 11:27:23
164
原创 Ubuntu之源码编译安装nginx
输入: ./nginx,运行nginx后,输入ps aux | grep 'nginx',可以看到已经有nginx进程。3.运行配置命令:(--prefix指定make install 后的目录,也就是nginx生成目录)5.运行make install 安装命令: make install。在浏览器中输入http://127.0.0.1/进入sbin目录,就是生成的nginx文件。sed后面的路径那里就是编译出来的目录。4.运行make命令: make。
2024-09-04 11:08:40
887
转载 nginx添加cjson库文件编译
如果是用vs工程编译nginx源码,则直接将csjon的.c和.h文件找个源码目录放进去,然后添加到工程,即可编译通过。如果是使用命令行编译方式,则将.c和.h放到src/core目录下,然后再在auto/source中增加。.h,cJSON.c的路径,即可编译通过。
2024-08-21 15:50:07
125
转载 使用cJSON库解析JSON字符串
(1) 首先调用cJSON_Parse()函数,解析JSON数据包,并按照cJSON结构体的结构序列化整个数据包。(2)调用cJSON_GetObjectItem()函数,可从cJSON结构体中查找某个子节点名称(键名称),如果查找成功可把该子节点序列化到cJSON结构体中。(3) 如果需要使用cJSON结构体中的内容,可通过cJSON结构体中的valueint和valuestring取出有价值的内容(即键的值)//通过cJSON_Delete(),释放cJSON_Parse()分配出来的内存空间。
2024-08-13 19:27:57
468
转载 如何在 Visual Studio 编译调试 Windows 版本的 Nginx 源码?
转自:如何在 Visual Studio 编译调试 Windows 版本的 Nginx 源码?_vs 编译 nginx-CSDN博客
2024-08-09 09:41:50
87
转载 Nginx:subrequest的使用方式
首先调用ngx_http_subrequest方法建立subrequest子请求,在ngx_http_mytest_handler返回后,mytest_post_handler是父请求重新激活后的回调方法,它对应于ngx_http_event_handler_pt指针。Nginx在子请求正常或者异常结束时,都会调用ngx_http_post_subrequest_pt回调方法,它的定义如下。175 //ngx_http_post_subrequest_t结构体会决定子请求的回调方法。
2024-08-05 17:11:16
162
转载 Nginx: handler 模块的实现
转自:https://zhuanlan.zhihu.com/p/585898977Nginx 内部结构是由核心部分和一系列功能模块所组成的,每个模块的功能相对简单,便于开发,同时也便于对系统进行功能扩展。Nginx 将各功能模块组织成一条链,当有请求到达的时候,请求依次经过这条链上的部分或者全部模块,进行处理。每个模块实现特定的功能。handler 模块就是接受来自客户端的请求并产生输出的模块,例如 ngx_http_static_module 模块,负责客户端的静态页面请求处理并将对应的磁盘文件准备为响应
2024-07-30 17:54:17
79
转载 【Nginx】开发一个HTTP过滤模块
当HTTP模块调用ngx_http_send_header发送头部时,就从ngx_http_top_header_filter指向的模块開始遍历全部的HTTP头部过滤模块并处理;我们使用预设的配置项解析函数ngx_conf_set_flag_slot解析配置项myfilter,将解析出的配置项參数存入结构体ngx_http_myfilter_conf_t的enable成员中。
2024-07-30 10:57:00
60
原创 关于新版QtCreator阅读代码时候耗用cpu达到100%问题解决
近日在使用新版本的QtCreator(Qt6.72, QtCreator13.02)阅读源码的时候,发现QtCreator cpu占用率时不时冲到100%,造成电脑超级卡,以为是新版QtCreator的bug,换回比较旧的版本(QtCreator10.0.2)发现也存在该问题。而且这个选项还有个奇葩的地方,你写的一行代码长一点了,他会自动给你分行显示,造成原本加个打印,还给你分个4,5行,搞得代码行数奇多,影响阅读。还有个东西就是本也得最后一项Clangd,查看资源管理器,就是这个东西一直在耗cpu。
2024-07-19 11:56:01
815
原创 ngnix添加自定义模块
使用msys生成makefile文件时候,configure编译命令需要添加如下语句:(即将自定义模块的目录加进来)参考如下的 示例: hello handler 模块 部分,重新生成ngnix.exe文件。
2024-07-18 15:20:23
1047
转载 HTTP 协议详解(史上最全)
如果没有 Cookie,直接将要存储的数据保存在客户端浏览器所在的主机的硬盘上,那么就会出现很大的安全风险,比如当你不小心打开某个不安全的网站,该网站就可以在你的硬盘上写一个病毒程序,那么你的电脑就挂了!假设我用 bing 浏览器搜索蛋糕,会发现有的搜索结果带有广告字眼,这就相当于广告主在 bing 浏览器用来引流的,当该网站的点击次数越多,用户的成交量也就会上升,金主给浏览器的广告费也就增多。如果最终我们只需要付一件产品的钱,就是幂等的,如果要支付N件产品的钱,就不是幂等的。
2024-07-17 09:42:16
12395
原创 Nginx源码windows下编译
4.将pcre-8.45.tar.gz、zlib-1.3.1.tar.gz、openssl-3.3.1.tar.gz解压到lib目录下,可以直接手动解压到该目录。打开nginx根目录下的auto/cc/msvc,发现没有写NGX_MSVC_VER版本号,因我的是vs2019,所以写上19.20。根据你自己的实际vs版本号填写,只有填写成功,后面nmake才能编译成功。3.在nginx源码根目录下创建objs文件夹,再在objs下创建lib。此时objs目录下已经生成了nginx.exe,说明已经编译成功。
2024-07-12 09:13:36
1526
1
转载 UDP报文头部分析
数据发送是发送到物理链路层的,从应用层开始,经过一层层的数据报文的封装,最终封装成以太网封装格式 和 802.x 封装格式的数据包,通过有线网络或无线网络在以太网上传输数据帧(bit流)。标明UDP头部和UDP数据的总长度字节,UDP首部的长度为固定的8个字节,加上UDP数据长度就是长度大小,UDP数据长度可以通过wireshark抓包看到。实时游戏:游戏的特点也是实时性比较高,在这种情况下,采用自定义的可靠的 UDP 协议,自定义重传策略,能够把产生的延迟降到最低,减少网络问题对游戏造成的影响。
2023-08-08 15:22:51
1970
转载 TCP 协议头全解
首部 Header Length 4 位,表示 TCP 报文段首部长度,看了下有的地方也叫它数据偏移,可以理解为 TCP 报文起始位置 到 数据部分 payload 的起始位置 也就是上图中 [源端口号 , 选项, 填充 ] 这部分数据的大小,4 位 0000 最大为 1111 = 15 ,这里每个数代表 4 byte,所以首部最大是 15 * 4 byte = 60 byte。发送方会将紧急数据插入到本次报文段的最前面,而后面的仍然是普通数据,紧急指针指示的是紧急数据的末尾在本段报文数据的位置。
2023-08-08 14:21:33
1021
转载 QT6源码编译全过程
截至笔者编写此篇博客的时候,QT6系列已经发布了6.2.3版本,笔者也是于近期亲身编译了QT6.2.2的源码,开始着手熟悉体验新版本的QT了哦!顺便将笔者的编译过程整理记录下来,跟大家进行分享、交流。QT作为一个跨平台的界面开发平台,经过了历史长河的洗礼以及一代代Qt开发者的不断努力,其意义已经远远高于开发界面。1、解压Qt6.2.2源码,启动VS2019的64位命令行并切换至Qt6.2.2源码目录。(1)Visual Studio2019(笔者使用的企业版)(6)QT6.2.2源码 点击下载。
2023-07-09 13:11:34
2673
转载 Source Insight 4.0 序列号 license文件
用16进制编辑器(sublime text)打开sourceinsight4.exe文件,找到c800 0000 742a 83bc 2408 这一段,修改74 为 eb。原文链接:https://blog.csdn.net/lxj170/article/details/94554818。注意:过一段时间提示过期后,把Date="2019-10-24 00:00:00",改成前一天的,又能继续使用。链接: https://pan.baidu.com/s/1xyprwNSXLpj7kpDa7LaF_Q。
2023-06-26 17:44:05
12534
转载 source insight的使用方法逆天整理(1)
新建工程之后是add and remove files这个窗口,一般add tree就把文件夹里的所有文件都加载进这个工程了。那么Load完成之后呢?close对话框就可以了啊。close之前有个神奇的地方向大家介绍下——SI可以加不同路径的代码进入你的工程,嘿嘿嘿。。。完成之后,就出现在右边了,点击其中任意一个文件,内容就显示在中央编辑区域了。左边是,可以快速定位函数、变量定义等。下面是,显示有用的上下文相关信息。可以通过View菜单调出或者关闭各种窗口。比如可以显示出方法中调用的方法。
2023-06-26 17:41:31
2458
转载 这样读源码,不牛X也难
不同的目的会有不同的心情,会影响到工作的进展,像修复他人的Bug这种事情,类似于没被掰弯的男猿捏着鼻子给另外一个男人擦屁股,是很恶心的,很容易让人拒绝的。其他的目的,重构旧代码、添加新功能,比帮别人擦沟子(陕西话,屁股)略强,因为他带有创造性,创造性的活动能给人带来强烈的愉悦,所以虽然这两种目的也有很多让人不爽的部分,不过想到我可以让一棵老树焕发青春,不爽也就慢慢弱下去了。我有这样的体会,因为代码不是自己写的,很难很快在脑子里刻下印记,经常是看着这里忘了那里,早上觉得弄懂了数据流向,中午吃个饭就忘了。
2023-06-26 17:15:23
104
nginx源码vs工程-自定义handler处理-创建子请求处理逻辑-filter过滤器中处理应答
2024-09-14
qftp源码可以被vs编译过
2023-06-09
thinkpad 黑将s5 win10开机刷脸 intel realsense 3D摄像头驱动。能正常刷脸开机
2018-03-10
自定义的QPushButton插件,可放到qt设计师使用v3.0
2017-05-17
自定义的QPushButton插件,可放到qt设计师使用v2.0
2017-05-15
自定义的QPushButton插件,可放到qt设计师使用
2017-05-12
轻量级日志模块,支持纯windows下日志打印或qt环境下日志打印
2016-12-16
qt编译出的db2和oracle数据库驱动(qt5.5.0+vs2013)
2016-11-22
记录日志到文件
2016-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人