- 博客(60)
- 收藏
- 关注
原创 C++开源库argh使用教程
argh是一个轻量级的C++命令行参数解析库,仅需包含一个头文件即可使用。它通过创建argh::parser对象并调用parse方法来解析命令行参数。
2025-05-19 16:57:26
352
原创 linux C 信号量超时返回
设置超时时间,当信号量等待时间过长时返回错误码,而非一直阻塞。效果类似于windows的WaitForSingleObject。
2024-10-31 10:47:14
399
1
原创 哈希签名溯源--Lamport40签名算法
Leslie Lamport的Constructing digital signatures from a one way function. Technical Report SRI-CSL-98, SRI International Computer Science Laboratory (1979)是我追溯到的最早的哈希签名算法,现在很多文献都会引用它。这个文献现在已经公开可以免费下载。本文将会详细介绍其第2章所述的算法并翻译部分内容,但不会给出代码。
2024-09-09 10:31:19
503
原创 android交叉编译报错no input files的解决方法
安装NDK后,make报错"clang-18: error: no input files",即使直接使用clang命令(例如clang -c test.c)仍然报错。
2024-08-28 14:56:48
766
原创 python gmssl SM4不填充加解密
使用gmssl(python版本)进行SM4加/解密时结果与国标(GMT0002)不符,或解密失败,原因是gmssl默认使用PKCS7填充,国标文档里的样例是没有填充的。
2024-05-01 10:39:41
1252
4
原创 GMSSL学习笔记
GmSSL是由北京大学自主开发的国产商用密码开源库,实现了大部分常用的国密算法(SM2、SM3、SM4等)以及TLCP协议,使用方法类似openssl。GmSSL是一个轻量级软件,使用起来也比openssl方便一些。
2024-04-07 17:13:40
882
原创 python ctypes.pointer和ctypes.POINTER的区别
ctypes.pointer将一个已实例化的对象转换为指针,该对象的类型必须是形如ctypes内部类型,例如ctypes.c_int或ctypes.Structure。ctypes.POINTER将一个ctypes内部类型转换为对应的指针类型,不会创建该类型的对象。ctypes.POINTER通常在设置argtypes时用于生成所需类型。ctypes.pointer通常在调用时用于生成所需指针。ctypes.pointer(a)相当于C的&a。ctypes.POINTER(A)相当于C的A*。
2024-01-26 15:59:26
1189
原创 git克隆失败提示RPC failed的解决方法
关键字:git, error, RPC failed, curl 18 transfer closed with outstanding read data remaininggit pull也会遇到同样的错误,解决方法相同。
2024-01-05 13:43:37
6469
2
原创 GreatDB源码分析之表空间加密
GreatDB(或mysql)服务端支持对表内数据进行加密存储,称之为表空间(table space)加密。
2023-12-28 15:58:47
1111
原创 redis-plus-plus访问REDIS集群
初始化需要输入任意一个结点的IP和端口,如果设置了密码,还需要密码的明文并使用ConnectionOptions类。开源库:redis-plus-plus。初始化完成后可以直接进行读/写操作。接口类:RedisCluster。
2023-11-02 15:52:28
863
原创 无openssl编译libwebsockets源码(关闭SSL)
编译源码,生成不依赖openssl的libwebsockets动态库(dll)
2023-07-11 16:02:21
2025
原创 C++罕见的纯虚函数调用异常(_purecall abort)
1、析构函数的执行过程中,虚函数表会发生变化,使得虚函数的表现与一般情况不同。2、子类的析构函数返回后,所有子类实现的虚函数在虚函数表中的指针都会替换为父类的对应方法(相当于子类重写父类方法的过程反过来),然后才会执行父类的析构函数。3、如果在析构函数中直接调用纯虚函数,则会引发链接错误,这算是编译器帮我们处理了最简单的情况。但间接调用纯虚函数的复杂情况编译器无法识别。4、父类的构造函数也有类似的现象,在执行期间,虚函数表中的指针都是父类的,纯虚函数则是_purecall。
2023-07-06 15:14:02
1193
原创 cmake make不打印详细信息的解决方法
cmake生成Makefile,make时不打印详细信息。Makefile中有MAKESILENT变量。
2023-03-29 14:39:19
1202
原创 Tk.event_generate失效的解决方法(python tkinter)
使用event_generate发送自定义消息,无报错,但Tk窗体无法接收到消息。
2023-02-22 17:06:23
638
原创 python装饰器实例@FixWd
本文实现了一个简单的装饰器,可用于固定工作目录。不说废话直接上代码import osimport subprocessimport sysdef FixWd(f):#固定工作目录的装饰器 def ret(*args, **kwargs): strPwd = os.getcwd() r=f(*args, **kwargs) os.chdir(strPwd) return r return ret@FixWd
2022-04-28 20:13:14
762
原创 双网卡电脑的Internet连接共享
需求概述有一台双网卡的电脑A(为简便起见,假设是2个以太网口。多于2个网卡,以及有无线网卡的情况下,解决方案雷同),2个网卡分别称为eth0和eth1。eth0可以访问Internet,eth1连接(网线直连)另一台电脑B(笔者的实际案例是一个嵌入式设备。还是为了叙述简便,假设是一个普通电脑,并且电脑B除了一个以太网口外没有其它上网手段)。目标:使2台电脑都能访问Internet。操作系统:ubuntu20。windows下的操作可参考:https://jingyan.baidu.com/a
2022-01-04 20:34:20
18224
4
原创 ubuntu20无法安装python-dev的解决方法
现象使用apt安装python-dev时报错,更换软件源无法解决。首先确定python版本(大版本号,我的是3),然后使用python3-dev代替python-dev。仍然报错:(关键字:Depends,Unable to correct problems, you have held broken packages)问题原因依赖软件包的版本不匹配。也有可能是依赖软件包的依赖软件包的问题。一般不做手动排查。解决方法安装aptitudesudo apt instal
2021-12-28 11:41:35
12626
1
原创 python踩坑记录
个人踩坑记录合集解决方法:卸载python3.9,换成python3.7,重新设置环境变量,(使用pip)重新安装dnspython。效果:可正常使用dns.asyncresolver.Resolver。原因:不明...
2021-09-06 10:57:33
424
原创 CHIA源代码分析之chiavdf
概述chiavdf是chia.net开发的一个开源软件库,用于chia区块链(XCH币)。chiavdf是chia区块链的关键模块之一,功能是提供VDF接口函数,进而限制区块产生的速度。本文分析了chiavdf的软件需求和主要代码,翻译了部分英文文献,并总结了文献中的概念与代码元素(函数、变量等)的对应关系。本文使用1.0.2版本的代码,代码来源是github:https://github.com/Chia-Network/chiavdf本文首发于csdn.net,转载请注明。本文的原创
2021-08-27 22:28:20
6265
原创 以太坊DAPP开发之HDWalletProvider
HDWalletProvider类封装在truffle-hdwallet-provider软件包中,提供类似以太坊钱包的功能,可以管理密钥。本文介绍两种基本用法,均使用js编程,在truffle的配置文件中调用。1、使用助记词。2、使用密钥。代码放一起了∩ˍ∩var HDWalletProvider = require("truffle-hdwallet-provider");var g_mnemonic = "one two three four five six seven eight
2021-08-15 12:46:07
11256
1
原创 sqlite高级语法实例:子查询+UNION+JOIN实现较复杂的IF逻辑
需求概述数据库结构表Features表Features的列: FeatureType | Removable | RemoveTech | 略表Features_XP2表Features_XP2的列: FeatureType | volcano | 略Features_XP2有可能不存在,Features一定存在。数据关注FeatureType值为'FEATURE_FLOODPLAINS','FEATURE_OASIS','FEATURE_REEF','FEATURE_GEO
2021-05-12 14:11:07
662
1
原创 安装Unity Hub卡在最后一步 的解决方法
现象:没有进度条,也没有下一步按钮解决方法:在托盘区找unity图标,双击点开,点“安装”,之后选模块。unity这个设计真是挺坑的参考资料:https://tieba.baidu.com/p/6222319963?traceid=...
2020-03-04 20:51:39
17848
7
原创 [实验]关闭TCP监听套接字对已建立连接的影响
先说结果吧,结果是无影响,已建立的连接依然可以正常使用。实验环境windows10,vs2010实验过程服务器采用VC编程,客户端使用TCP调试软件。服务器工作流程1、创建监听套接字socket1,绑定端口17000。2、使用listen函数监听socket1。3、使用accept函数从socket1接受连接,得到一个新的套接字socket2。4、关闭socke...
2018-10-03 10:46:12
2556
原创 openssl生成证书及简化身份验证
概述本文将给出数个用于生成SSL证书的bat脚本,并探讨当不需要身份验证时可行的简化方案。本文面向openssl初学者,但需要一定的密码学基础知识。具体包括 对称加密、非对称加密、密钥、公钥、数字证书,以上概念只需了解即可。本文假设你已经下载安装了openssl,文章内容将不包含安装openssl。打开CMD输入openssl来验证你的openssl是否可以正常使用。开发环境...
2018-09-01 20:04:55
2233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人