
笔记
。橙子
上善若水。个人V*,有偿解决技术问题
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
xxhash和md5
如果只关心快速判断文件或数据是否一样,用xxHash;如果需要防篡改、安全性保障(如验证码、签名),就不能用xxHash,而应选择 SHA256(甚至 MD5,也只是过时了,不是无效)。如果正在做大数据处理、日志处理、网络传输验证等非安全场景,xxHash是非常合适的。原创 2025-06-03 10:17:26 · 1013 阅读 · 0 评论 -
编译器优化和实例
编译器优化 C 代码时,通常从多个层面进行优化,以提高程序的执行效率、减小代码体积,或者降低能耗。原创 2025-05-30 16:03:03 · 826 阅读 · 0 评论 -
openssl中aes算法的封装
是继国密之后,又封装了此版本的ctr模式,个人笔记,仅供参考。原创 2025-05-20 14:09:38 · 127 阅读 · 0 评论 -
总结一下最近的知识盲区(个人笔记)
如果原始数据长度是n字节base64长度 = ((n + 2) / 3) * 4(注意这里是整除以后再乘以4)①粘包问题是TCP本身导致的因为 TCP 是流协议,只保证数据可靠到达、顺序正确,但不保证一次recv()就读到完整一包。所以B机根本不知道"现在这一坨数据是不是A机发的一个完整包" —— 只能靠自己设计协议来区分!原创 2025-05-06 11:16:07 · 793 阅读 · 0 评论 -
Gmssl实战
最近项目要引入gm算法,实现aes和sm4数据加密,研究了一下两个系统的安装和测试用例。这里说下我要用的gm库的格式,为静态库,mt,所以需要修改cmakelists.txt。gmssl_use.c 我用packet_id做iv的生成条件。windows, 从github下载GmSSL库(打开x86cmd.bat,解压GmSSL到目录。安装完后,我们可以在目录中找到gmssl.lib。linux,从github下载GmSSL库(),以下为安装方法。),以下为安装方法。依次执行以下命令安装。原创 2025-04-21 18:06:09 · 655 阅读 · 0 评论 -
c语言jni实战,双系统
①安装jdk,去java官网下载,这里使用版本jdk-23_windows-x64_bin.exe。新建系统变量 JAVA_HOME:C:\Program Files\Java\jdk-23。#centos ,我使用的centos,其他系统安装方式不同。③在环境变量的PATH中新增 %JAVA_HOME%\bin。1.首次编写jni接口代码,需要安装java。2.配置jni环境变量(linux接第一步)④重启计算机或visual studio。是你jdk的安装路径,默认是这个。②安装完毕后设置环境变量。原创 2025-04-14 11:24:17 · 494 阅读 · 0 评论 -
libevent的网络限速设置
【代码】libevent的网络限速设置。原创 2025-04-10 14:43:37 · 134 阅读 · 0 评论 -
linux c转windows c要做的事情。
检查源代码是否使用了Linux特有的API或库。文件系统相关Linux下面,文件换行是"\n",而windows下面是"\r\n"。Linux下面,目录分隔符是"/",而windows下面是"\"。Linux中可根据stat的st_mode判断文件类型,有S_ISREG、S_ISDIR等宏。原创 2024-08-15 18:40:05 · 1475 阅读 · 0 评论 -
做敏捷教练的日子
严格的对结果和目标负责,摒弃以往的计划驱动观念,深刻了解敏捷的价值和意义。它是一种更快、更好、更频繁的交付价值,更灵活适应变化,不断检视调整改进的能力。每个人都要时刻要以目标为导向,在过程中不断调整和适应,为最终结果服务和负责。原创 2024-07-30 11:50:04 · 486 阅读 · 0 评论 -
如何达成某项成就?
我认为要达成一项成就,受三个方面的因素影响:想法、执行力、韧性。它们三个分别代表了:想、做和坚持。三者相互制约,也能相互促进。一件事情做成,先要有想法,这是这件事情的开端。想法不是空想,是有依据的,受个人的知识体系、见识的影响,对于这件事情有不同的认识。敢想敢干,是一种决心和勇气。当今可能是躺平的社会,可躺平其实只是在人云亦云而已,是一种半退缩的表现。想法的建立要取决于人的欲望,人都是有欲望的。比如工作有人为了挣米,还有人想有更好的发展和以后,这都是欲望“作祟”。但这又是人之常情,有了这些想法,离做成事就不原创 2024-07-30 11:40:23 · 221 阅读 · 0 评论 -
linux c 自己实现ini格式的reader
代码中使用了glib库作为数据结构,如果使用其他的,请自行替换。原创 2024-07-25 15:20:50 · 439 阅读 · 1 评论 -
linux c 子路径剔除
将一个路径集传入,剔除子路径。原创 2024-07-25 15:11:37 · 275 阅读 · 0 评论 -
linux c 特殊字符分割
以上代码实现了字符串根据特殊字符分割,并放入glib的数组(GPtrArray_autoptr是指针数组)里面。如果项目有引用其它的数据结构,也可以替换这个数组。原创 2024-07-25 15:02:10 · 379 阅读 · 0 评论 -
linux c 获取当前程序的运行路径
获取当前程序的运行路径。原创 2024-07-25 14:51:57 · 307 阅读 · 0 评论 -
16位MD5转32位字符串
【代码】16位MD5转32位字符串。原创 2024-07-25 14:55:49 · 242 阅读 · 0 评论 -
C++11-17特性自用
以下我想实现一个等级阶段的结构适配。原创 2023-07-17 15:11:05 · 201 阅读 · 0 评论 -
线程间通讯实例
简单实现了线程通讯,记录下,直接上代码。发送线程:#define MY_SHELLMENU_MSG WM_USER+200int iCmd=0,iMinID=0;PostThreadMessage(nThreadID, MY_SHELLMENU_MSG, (WPARAM)iCmd, (LPARAM)iMinID);1.上面的线程id需要自己获取,你要发给哪个线程就是了。2.消息是自定义的3.icmd和iMinID可以是任意类型接收线程:while (true)原创 2021-09-28 21:26:40 · 158 阅读 · 0 评论 -
ListView控件的重绘相关
最近在做关于C++ ListView控件重绘相关的工作,记录一下重要的重绘逻辑这个先解释下它在不同框架(也不能这么说),不同地方的不同MFC:就是CListContrl类,这个封装的很好,做起来相对简单COM:对应的用法都在CommCtrl里面 以 ListView_开头,下面说的主要是COM这个编程相关,不过原理都是一样的直接上代码 case WM_NOTIFY: if (reinterpret_cast<LPNMHDR>(lParam)->hwnd原创 2021-09-06 12:09:18 · 552 阅读 · 0 评论 -
VC++ 关于VC6.0编译环境的数据断点调试
由于VC6.0这个编译环境比较老了,但是有好多老项目是用的,而且vc6转高版本,05,08,10,会有多多少少大大小小的问题。比如VC6.0是可以这样写的#define MAX_INDEX_NUM 10 VOID 优快云::Function(){ for(int i=0;i<MAX_INDEX_NUM;i++) { //do something } for(i=0;i<MAX_INDEX_NUM;i++) {原创 2021-03-29 20:59:20 · 1017 阅读 · 0 评论 -
VC++ 使用StackWalker类打印当前运行堆栈信息
意义:作用在程序log模块或找一些模糊不清的bug,可以精确定位堆栈的运行。之前一直找这个找不到,从git上找到了StackWalker类分享。StackWalker.cpp#include "StackWalker.h"#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <windows.h>#pragma comment(lib, "version....原创 2021-03-25 13:01:04 · 1083 阅读 · 0 评论