- 博客(52)
- 资源 (14)
- 收藏
- 关注
原创 一篇长文彻底掌握Docker、Docker Compose与Kubernetes部署
维度DockerKubernetes定位容器化引擎单机多容器编排集群容器编排管理范围单个容器单台主机多台主机集群学习曲线低低高生产就绪需配合其他工具不推荐原生支持扩缩容手动手动自动(HPA)故障自愈无无原生支持滚动更新无无原生支持三者是互补关系,而非替代关系。Docker 是基础容器技术,Compose 是单机编排工具,K8s 是集群编排平台。Pod 多容器:共享 IP、Volume 和进程空间,作为不可分割的调度原子。
2026-07-14 15:52:32
282
原创 如何配置HTTPS站点访问的免费SSL域名证书
给网站加上 HTTPS访问,这个过程的核心,是配置SSL域名证书,如何免费使用域名证书呢?本文通过使用工具从自动申请一个的 SSL 证书,并配置到期自动更新,通过这种方式完成个人搭建网站的https访问,并面试无限期使用SSL域名证书。为了让过程更清晰,将准备两个方案。最直接,易于理解;则能完美融入现有的 Docker 环境,自动化程度更高。可以根据自己的偏好来选择。
2026-07-13 13:44:09
421
原创 系统部署之框架选型方案
没有“万能钥匙”:每个框架都有其最擅长的领域,它们通常组合使用,各司其职。架构服务于业务:Lambda、Kappa等架构模式提供了不同的解题思路。按需裁剪是常态:从几十TB到EB级数据,技术选型和架构的复杂度天差地别。关键是理解每个组件的核心能力,然后根据业务需求进行合理的组合与取舍。
2026-07-13 11:59:21
233
原创 系统部署之技术框架
框架/技术核心分类主要作用集群部署数据备份/同步Hadoop分布式存储与计算平台海量数据的存储(HDFS)和批处理计算(MapReduce)是,核心运行方式是,通过HDFS的多副本机制Raft共识算法为分布式系统提供强一致性的决策基础被其他系统内部使用是,通过日志复制实现数据同步Kafka分布式消息流平台系统间的实时数据传递流量削峰是,核心运行方式是,通过分区副本和ISR机制ZooKeeper分布式协调服务提供配置管理服务发现等协调功能是,核心运行方式是,通过自身的Zab协议Etcd。
2026-07-10 11:52:40
171
原创 系统部署之部署方式
备机通过“心跳”机制(一种周期性发送的信号)检测主机健康。一旦检测到主机故障,备机便在极短时间内(通常秒级)接管其IP地址和服务,成为新的主机。当某个节点故障,负载均衡器自动将流量切换到其他健康节点,实现高可用。它的核心是“备”和“热”:“备”意味着有备用机器随时待命;“热”则要求备用机实时同步数据,确保能在故障时快速接管。与双机热备的“主备”模式不同,集群更强调“协同”和“扩展”。,例如在核心业务层采用集群部署,在数据层采用双机热备,构建多层次的高可用架构。值得注意的是,在实际架构中,两者经常。
2026-07-10 11:48:56
311
原创 TLCP&GMSSL协议及Wireshark抓包详解
TLCP 是国家标准协议(GB/T 38636-2020/GM/T 0024-2014),非标准叫法也有叫GMSSL协议的,这个和GMSSL开源库( 实现TLCP协议的开源密码库名称)容易造成混淆,所以标准的统一名称应为 TLCP协议;两种显示对应的都是符合GB/T 38636-2020标准的国密传输层协议,都采用SM2双证书身份认证、SM3哈希、SM4对称加密的算法组合,握手流程里的双证书发送、密钥交换、签名验证等操作逻辑完全相同,不存在协议层面的本质区别。,这个显示差异是抓包工具的协议识别规则不同。
2026-07-08 10:46:09
299
原创 最新前后端开发技术栈总结
你想做什么推荐技术组合快速搭一个官网/博客Next.js 或 Nuxt 3(全栈一把梭)做一个有后台的管理系统同时要做网页 + 小程序 + AppTaro 4(一套代码多端运行)只想写后端 APINestJS 或 Express2026 年的趋势:前端不再是“只写网页”,而是一套技术栈通吃 Web、小程序和 App。TypeScript 已成为必选项,而 shadcn/ui + Tailwind CSS 正成为越来越多新项目的默认 UI 方案。
2026-06-26 16:32:59
301
原创 B/S应用安全设备部署与功能全景指南
层级部署设备解决的问题边界层路由器、抗DDoS、NGFW清洗大流量攻击,执行基础访问控制应用接入层IPS、WAF、负载均衡防御应用层攻击,保障高可用身份与访问层安全认证网关、API网关强身份认证,精细化权限管理数据层数据库防火墙、数据库审计保护核心数据,满足合规审计运维层堡垒机、EDR规范运维操作,防范终端风险管理层日志审计、漏洞扫描、态势感知集中监控、漏洞发现、安全运营这套分层防御、纵深防御的体系,能够有效将安全风险控制在最小范围,是构建高安全等级B/S应用的坚实基础。
2026-06-23 16:07:27
382
原创 杂凑+对称算法+分组模式工作流程
本文摘要了对称加密算法、哈希函数和分组密码工作模式的工作流程。对称加密部分包括AES(字节代换、行移位、列混合等步骤)、DES(Feistel结构16轮迭代)和SM4(32轮类Feistel结构)的算法流程图。哈希函数部分展示了MD5(Merkle-Damgård结构)、SHA-256(增强M-D结构)和SM3(国密标准)的压缩处理流程。分组密码模式部分图示了ECB(独立加密)、CBC(链式异或)、CTR(计数器流)、GCM(认证加密)、OFB/CFB(反馈模式)等主流工作模式的加密过程
2026-06-09 14:13:13
220
原创 GB/T 39786 信息安全技术 信息系统密码应用基本要求(三级密改密评解读)
GB/T 39786 信息安全技术 信息系统密码应用基本要求》对信息系统提出的四个核心技术要求。,而所有的“真实性”和“机密性”要求都必须是“应”(即必须实现)。整体上,。下面从最关心的四个方面逐一拆解,每个部分会包含具体要求、涵盖对象,以及满足要求的思路。
2026-06-08 14:55:39
328
原创 数据机密性保护(补充国密算法)
国密算法是由国家密码管理局认定的一系列商用密码算法标准,涵盖非对称密码(SM2)、密码杂凑(SM3)和对称分组密码(SM4)三大基础算法体系。随着金融安全上升到国家安全高度,近年来国家有关机关和监管机构站在国家安全和长远战略的高度提出了推动国密算法应用实施的要求。
2026-06-08 14:44:27
353
原创 数据机密性保护算法汇总(国际算法)
公钥是(e, n),私钥是d。轮数取决于密钥长度:128位密钥10轮,192位12轮,256位14轮。分组密码一次只能加密一个固定长度的分组(比如AES一个分组16字节),但实际数据可能很长,所以需要用工作模式来串联多个分组。Feistel网络结构,64位分组,56位有效密钥(8字节密钥中每字节最后一位是奇偶校验位,实际有效56位)。这样做是为了解密时能知道从哪里截断——解密后看最后一个字节的值k,就知道最后k字节都是填充,可以安全去掉。对称加密的特点是加密和解密用同一个密钥,速度快,适合加密大量数据。
2026-06-08 14:40:04
423
原创 数据完整性保护算法汇总
本文介绍了数据完整性保护的核心技术——哈希算法,对比了MD5、SHA系列、SM3等主流算法的安全性和技术参数,指出SHA-256和SM3是目前的安全首选。文章详细解析了哈希算法的处理逻辑和数据填充规则,并重点说明了HMAC这种加盐认证机制的工作原理、密钥要求和应用场景。最后给出算法选择建议:常规场景用SHA-256,高安全需求用SHA-512,国密系统用SM3,明确反对使用已破解的MD5和SHA-1算法。全文以表格形式清晰呈现各算法关键参数,为密码学应用提供实用参考。
2026-06-08 14:24:15
346
原创 如何将GitCode仓库的提交同步到 GitHub
GitCode 的「仓库镜像」功能可以直接满足“在 GitCode 提交后自动同步到 GitHub”的需求。可以把它理解成一个“自动搬运工”,在 GitCode 这边的任何更新,都会被自动推送到 GitHub 上。这样可以解决github访问不稳定的问题,也可以解决一些只针对github代码的自动部署。
2026-05-14 19:11:43
464
原创 Pythond的FastAPI、 Flask和Django到底怎么选?
Python三大Web框架对比:Django、Flask和FastAPI各有特色。Django是"大而全"的全栈框架,适合复杂后台开发;Flask轻量灵活,适合小型项目和快速原型;FastAPI专为高性能API设计,支持异步并自动生成文档。选择依据:Django适合电商/CMS等复杂系统,Flask适合小型应用/学习,FastAPI适合高并发API服务。初学者可从FastAPI入门,再逐步掌握其他框架。
2026-05-14 18:18:09
380
原创 使用git首次上传本地代码
有些历史代码,想通过git进行储存和管理,要将本地的代码上传到Git仓库,以下整理了上传步骤,可以按照以下步骤进行。这里假设已经创建了本地仓库,并希望通过Git将其推送到远程仓库。如果还没有创建一个远程仓库,可以先在GitHub、GitLab、Bitbucket等平台上创建一个远程仓库,并获取其URL(创建的远程仓库地址)。
2026-04-23 20:29:17
401
原创 从已安装的Android应用中导出安装包
摘要:本文介绍如何从旧安卓手机导出已安装应用的APK文件,适用于绿色无广告工具类应用的迁移。操作步骤包括:1)通过adb命令查看应用包名;2)获取APK路径;3)导出APK文件。文中还提供了常见问题解决方案,如adb版本冲突需重启服务、USB调试授权问题处理等。该方法仅适用于Android系统,需保留原应用但安装包已删除的情况,是迁移无广告旧版应用的有效方案。(149字)
2025-11-25 19:25:15
934
原创 如何计算电池充满电的预计时间
//获取系统电池的充电速率,可以通过充电速率估算出电池充满的时间#include #include #include #include #include #pragma comment(lib,"PowrProf.lib") int _tmain(int argc, _TCHAR* argv[]){ NTSTATUS Processor_information; SYS
2015-12-31 11:29:34
4725
1
原创 micphone静音设置(vista版本以上)
设置麦克风静音#include "windows.h" #include #include "mmdeviceapi.h"#include #pragma comment(lib, "Winmm.lib")#define SAFE_RELEASE(ptr) \ { \ if (ptr) \ { \ (ptr)->Release(); \
2015-12-31 11:17:59
896
原创 设置当前进程的区域语言
//获取默认的区域语言 if (GetUserDefaultUILanguage() == MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)) // [中文(简体)] { } //设置当前的进程区域语言 SetThreadUILanguage(MAKELANGID(LANG_ARABIC, SUBLANG_ARABIC_SAU
2015-12-31 11:09:31
2182
原创 获取当前分辨率及dip值
#include "ShellScalingAPI.h"#pragma comment(lib, "Shcore.lib") //输出当前分辨率 int width = GetSystemMetrics(SM_CXSCREEN);int height = GetSystemMetrics(SM_CYSCREEN);//输出当前dpiHDC
2015-12-21 10:13:40
2607
转载 C++ 局部静态初始化不是线程安全!
http://blogs.msdn.com/b/oldnewthing/archive/2004/03/08/85901.aspx 在块作用域中的静态变量的规则 (与之相对的是全局作用域的静态变量) 是, 程序第一次执行到他的声明的时候进行初始化.察看下面的竞争条件:int ComputeSomething(){ static int cachedResult = Co
2014-05-29 14:29:26
982
原创 向页面发送http请求获取服务器时间
asdasdBOOL BjcaFunc::GetNetTime(string &year, string &month, string &day) { // HINTERNET internetopen;// internetopen=InternetOpen(_T("getTime"), INTERNET_OPEN_TYPE_PRECONFIG, NULL,
2014-04-18 13:04:28
3275
转载 C++调用ATL事件连接点
在调用者工程中,需要增加“接收器”对象,添加一般的C++类对象,从IDispatch 派生,然后完成继承的虚函数,如创建CSink类,继承自IDispatch ,完成Simple16库中触发事件的接收器。// 头文件#pragma once#include "oaidl.h"class CSink :public IDispatch{public:CSink(v
2013-12-24 11:25:28
1136
转载 如何解决"应用程序无法启动,因为应用程序的并行配置不正确"问题
应用程序事件日志中:“C:\windows\system32\test.exe”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762"。 请使用 sxstrace.exe
2013-09-17 17:00:57
1226
转载 Windows异常处理
1、Windows对于C++异常处理的扩展:为了更便捷的在Windows系统中进行异常处理,微软在C++异常处理的机制上,又增加了扩展,称为SEH(Structured Exception Handling),即结构化异常处理;语法如下:__try{……}__except (){……}Windows exception 最常见的问题 :run
2013-06-26 11:28:01
1124
转载 C++运行时错误处理
闲来无事作点翻译工作,今天要介绍的是关于错误处理的.以下内容大部分不是我的原创,我只是把他们收集到一起来了而已. 错误处理在一个系统里面算是一个比较底层的东西了.拥有一个稳定的错误处理系统,是一个良好的系统的基础.从发展的角度看,错误处理大体有下面几种方式. 比较基础的,使用返回值表示错误还是正确,比如使用int作为返回值,0表示正常1表示错误,这种算是c语言里
2013-06-26 10:26:34
3462
原创 KEY_WOW64_32KEY 和 KEY_WOW64_64KEY
在打开注册表时,32位程序往往在64为系统上不能直接访问64的路径,都是自动跳到WoW6432Node下面,在打开注册表时添加“KEY_WOW64_64KEY”标志,就能直接访问64为注册表路径。LONG lReturn = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\***", 0, KEY_ALL_ACCESS | KEY_WOW6
2013-04-19 11:06:29
9937
原创 统计字符串中某个字符出现的次数
统计字符串中某个字符出现的次数用标准库算法函数“ count_if”。1、标准库string类型const stringstr = “testString”;int count = count_if( str.begin(), str.end(), bind2nd(equal_to(), '某字符' );2、CString类型CString st
2013-04-16 17:08:07
2387
原创 ATL正则表达式实例
1、匹配数字、字符、下划线BOOL RegexMatch(CString sourceStr){ CAtlRegExp reRule; wchar_t *wt = L"^[A-Za-z0-9-_]+$"; //只能输入由数字和26个英文字母和'-''_'组成的字符串 REParseError status = reRule.Parse((const ATL::CAtl
2013-04-16 16:24:39
1005
转载 GetVersion和GetVersionEx
出自:http://flyxxtt.blogbus.com/logs/42705986.htmlWindows API 中有两个函数可以得到系统版本信息:GetVersion和GetVersionEx。GetVersion这个函数曾经困扰了很多程序员,其本来设计的是在DWORD返回值中用低位的那个字表示MS-DOS的版本号,高位的那个字表示Windows版本号。对于每个字来说,高位
2013-04-15 11:54:08
903
转载 yum和apt-get的区别
一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 2 包管理工具 yum 3 支持tar包 Debian系列 1 常见的安装包
2013-04-12 11:05:41
620
原创 linux从命令行切换到X窗口模式
从命令行切换到X窗口模式在命令行输入:init 5从X窗口切换到命令行ctrl+alt+F3从X窗口再次切换到命令行模式ctrl+alt+F7开机自动进入X窗口模式,打开文件/etc/inittab找到其中的id:3:initdefault:将运行级改成5,也就是图形模式id:5:initdefault:
2013-04-12 11:04:03
2242
转载 LINUX VMWare-TOOLS的安装及使用
安装vmware-tools的安装包有两个,一个是rpm包,一个是tar包,下面分别是用了这两种方法安装:一、rpm包安装1.在启动LINUX 虚拟机之后,在WMWare 的菜单栏中点击"VM",然后点击下拉菜单中的"Install VMware TOOLS"选项。2.挂载光驱:[root@localhost ~]# mount /mnt/cdrom /mnt/[r
2013-04-12 10:56:58
961
原创 实现tab按键切换Edit控件焦点(WTL)
BOOL ChangePassWordDlg::PreTranslateMessage(MSG* pMsg){ HWND hEdit = pMsg->hwnd; if((NULL != hEdit) && (WM_KEYDOWN == pMsg->message) && (VK_TAB == pMsg->wParam)) { TCHAR szC
2013-04-08 16:09:25
1746
转载 虚拟机中的XP系统忘记密码解决办法
如果你安装了虚拟机,如果你装了XP系统,又如果你忘了密码或那个DB改了你的密码,你可以用如下的方法解决1.打开虚拟机,保证系统在POWER OFF状态下,然后点击“VM”--- >“settings”出现如下对话框点击右下角“Utilities”,选第一项“map”出现如下对话框此时一定要把两个复选框的勾去掉!!!(因为后面要复制文件)2.打开“
2013-04-03 10:34:52
3292
原创 求日期之间的天数差
得到给定日期和当前日期之间的相差天数。#include //传入参数格式如“20130604131744”int BjcaFunc::getCertRemainDay(wchar_t*certEndData){ int nYear,nMouth,nDay; wchar_t desData[20] = {0}; wmemcpy(desDat
2013-03-27 14:26:23
825
转载 C语言操作WINDOWS系统存储区数字证书相关函数详解及实例
C语言操作WINDOWS系统存储区数字证书相关函数详解及实例 以下代码使用C++实现遍历存储区证书及使用UI选择一个证书 --使用 CertOpenSystemStore打开证书存储区. --在循环中,使用CertEnumCertificatesInStore. 枚举所有存储区中的证书. --使用CryptUIDlgViewContext显示一个证书 . --使用C
2013-03-22 17:29:51
1066
转载 如何修改CFileDialog的标题
CFileDialog f(TRUE); f.m_ofn.lpstrTitle = "我的标题"; f.DoModal();CFileDialog 使用介绍CFileDialogCFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog( BOOL
2013-03-22 10:19:02
1253
转载 VC正则表达式的使用
正则表达式是一种对字符进行模糊匹配的一个公式。在数据有效性验证,查找,替换文本中都可以使用正则表达式 。本篇文章主要描述的是使用ATL中两个模板类CAtlRegExp和CAtlREMatchContext。在使用CAtlRegExp类之前需要添加#include 这个头文件。RegExp是Regular Expression的缩写以匹配邮件地址字符串为例说明两个类的使用
2013-03-21 11:31:02
1196
C++/MFC多线程编程
2009-01-08
C#读取图片文件存入数据库
2009-12-19
vc界面编程经典实例
2013-03-28
Windows下UltraEdit查看Objective-C代码高亮工具
2013-02-01
飞秋等级随便设
2013-04-28
readline-7.0.zip
2021-03-22
STL算法详解与汇总
2009-06-23
语言嵌入式编程修炼宝典
2008-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅