从零到一:手把手教你用Halcon+C#打造PCB焊接缺陷检测系统(附完整源码)
从零到一手把手教你用HalconC#打造PCB焊接缺陷检测系统附完整源码最近和几个在电子厂做设备维护的朋友聊天他们都在抱怨人工检查PCB焊接点效率太低漏检、误检是家常便饭尤其是遇到0402、0201这种微型元件老师傅的眼睛也扛不住。这让我想起几年前接手的一个项目当时客户要求上线一套自动检测设备预算有限又不能采购动辄几十万的成品AOI自动光学检测系统。最后我们用Halcon搭配C#从零搭建了一套成本可控、检测精度达标的PCB焊接缺陷检测系统。今天我就把这个项目的核心思路、关键技术和踩过的坑毫无保留地分享出来。无论你是刚入行的机器视觉工程师还是想给自己的生产线增加“火眼金睛”的开发者这篇文章都能给你一套可直接落地的方案。这套系统的核心目标很明确替代人眼快速、稳定、准确地判断PCB板上的焊点是否存在虚焊、漏焊、桥接、锡球等常见缺陷。整个技术栈围绕Halcon强大的图像处理库和C#便捷的Windows桌面应用开发能力展开。下面我将从硬件搭建、软件架构、核心算法实现到最后的系统集成与优化一步步拆解。1. 硬件选型与成像系统搭建给机器一双“好眼睛”硬件是机器视觉系统的“感官”成像质量直接决定了后续算法能发挥的上限。在预算有限的前提下如何搭建一个稳定可靠的成像平台我的经验是不求最贵但求匹配。工业相机的选择是第一步。当时我们对比了CCD和CMOS最终选择了一款500万像素的全局快门CMOS相机。为什么不是更高像素因为PCB检测通常不需要极端细节500万像素对于大多数通孔元件和SMD焊盘已经足够更高的像素意味着更大的图像数据量会拖慢处理速度。全局快门是关键它能确保在物体移动比如传送带上的PCB板时拍摄的图像没有畸变。相机的接口我们选了千兆网口GigE Vision布线方便传输距离远比USB接口更稳定。镜头的选型需要计算。这里涉及到一个关键参数视场FOV和工作距离WD。我们的PCB板最大尺寸是200mm x 150mm为了单次拍摄覆盖整板视场需要略大于这个尺寸。我们选择了一个焦距为25mm的C口工业镜头。通过以下公式可以估算所需的传感器尺寸和分辨率匹配传感器尺寸 (mm) 像元尺寸 (μm) × 像素数 / 1000我们相机的像元尺寸是3.45μm横向像素2448所以传感器横向尺寸约为8.45mm。根据相似三角形原理可以计算出在所需工作距离下镜头能否覆盖整个视场。这一步计算务必精确否则会出现边缘模糊或者拍不全的情况。光源是打光的艺术目的是让焊点特征如光滑的弧形表面与绿色的PCB基板、黄色的阻焊层形成高对比度。我们试过环形光、条形光、同轴光最后发现对于多数焊点白色环形LED光源配合低角度照明效果最佳。低角度光能使焊点光滑的弧形表面产生明亮的高光而平坦或凹陷的缺陷区域则显得暗淡对比非常明显。对于某些有阴影的角落我们额外增加了一个可调角度的条形光作为补光。提示光源选型没有标准答案最好的方法是购买一个光源试用套装在实际环境下用你的相机和镜头对着样品板测试观察不同角度、不同颜色白色、红色、蓝色光源下的成像效果。这笔投资绝对值得。最后是机械结构。相机、镜头、光源需要固定在一个刚性的支架上并确保PCB板能通过传送带或夹具精确地停留在相机正下方。我们用了两个直线模组搭建了一个简单的XY移动平台用于精确定位和扫描大尺寸PCB板。整个硬件清单和大致成本如下表供你参考组件型号/规格参考价格人民币备注工业相机500万像素全局快门CMOS GigE4,000 - 8,000品牌如海康、大华、Basler工业镜头25mm焦距 C口1,500 - 3,000Computar、Kowa等光源白色环形LED外径120mm800 - 1,500配合可调亮度的控制器光源控制器四通道500 - 1,000工业电脑i5处理器8GB内存固态硬盘4,000 - 6,000带千兆网口运动平台可选精密XY模组5,000 - 15,000若需扫描大板或高精度定位支架与线缆万向支架、网线、电源线1,000 - 2,000硬件组装好后用Halcon的open_framegrabber或相机厂商提供的SDK进行连接测试确保能稳定抓取到清晰的图像。这一步的调试可能很枯燥但图像质量是后续所有算法的基石多花点时间绝对有必要。2. 软件架构设计Halcon与C#如何优雅共舞确定了硬件接下来就是软件的大脑部分。我们的核心思路是用Halcon处理所有“看”和“想”的工作图像处理与算法用C#构建“手”和“脸”系统控制与用户界面。这样既能利用Halcon在机器视觉领域无与伦比的算法库又能享受C#在开发Windows桌面应用时的快速和高效。整个软件采用典型的分层架构分为表现层、业务逻辑层和数据访问层但其中融入了Halcon引擎。具体模块划分如下图像采集模块基于C#。我们封装了一个相机操作类通过调用厂商的SDK如海康的MVS或标准的GenTL、GigE Vision协议来连接相机、设置参数曝光、增益、触发拍照并将获取的图像数据转换为Halcon能识别的HObject格式。图像处理与算法模块基于Halcon。这是系统的核心所有关于图像预处理、定位、特征提取、缺陷判断的逻辑都在这里。我们将这些算法流程编写成独立的Halcon脚本.hdev文件或导出为C#可调用的函数。业务流程控制模块基于C#。它像乐队的指挥负责调度整个检测流程启动相机 - 触发拍照 - 调用Halcon算法 - 获取结果 - 控制运动平台如果需要 - 保存数据和图像 - 触发分拣机构良品/不良品。用户界面模块基于C# WinForms或WPF。提供一个直观的操作界面包括实时图像显示、参数设置如检测阈值、模板区域、结果统计图表、历史记录查询、报表导出等功能。数据管理模块基于C#和SQLite数据库。记录每一块PCB板的检测结果序列号、检测时间、缺陷类型、缺陷坐标、缺陷图像快照等方便后续的质量追溯和统计分析。Halcon与C#的交互是关键技术点。Halcon提供了完善的.NET接口halcondotnet.dll。在C#项目中你只需要引用这个DLL就可以直接创建和操作Halcon的数据类型如HObject,HTuple。通常我们会把复杂的图像处理流程在Halcon开发环境中调试好然后通过两种方式集成到C#中导出为C#代码在Halcon中使用“文件”-“导出”功能将程序导出为C#代码。这会生成一个包含了所有Halcon算子的C#类文件。优点是集成简单缺点是生成的代码结构可能比较冗长。封装为函数将核心算法流程如“定位焊盘”、“提取焊点特征”、“判断缺陷”封装成一个个独立的Halcon函数*.hdvp或*.hdpl然后在C#中通过HDevEngine来调用这些外部函数。这种方式更模块化便于维护和复用。我更喜欢第二种方式。下面是一个在C#中调用外部Halcon函数check_solder.hdvp的简化示例using HalconDotNet; public class VisionProcessor { private HDevEngine engine; private HDevProcedure proc; public VisionProcessor(string procedurePath) { // 初始化Halcon引擎 engine new HDevEngine(); // 设置外部函数路径 engine.SetProcedurePath(procedurePath); // 加载外部函数 proc new HDevProcedure(check_solder); } public InspectionResult ProcessImage(HObject image) { InspectionResult result new InspectionResult(); try { // 准备输入参数 HDevProcedureCall call proc.CreateCall(); call.SetInputIconicParamObject(Image, image); // 执行外部函数 call.Execute(); // 获取输出参数 HTuple defectCount call.GetOutputCtrlParamTuple(DefectCount); HTuple defectTypes call.GetOutputCtrlParamTuple(DefectTypes); HObject defectRegions call.GetOutputIconicParamObject(DefectRegions); // 将结果封装到自定义对象 result.DefectCount defectCount.I; // ... 其他赋值操作 } catch (HDevEngineException ex) { // 异常处理 Console.WriteLine($Halcon过程调用错误: {ex.Message}); } return result; } }这种架构清晰地将视觉算法与业务逻辑解耦。当需要优化算法时你只需要在Halcon中修改check_solder.hdvp文件而无需重新编译整个C#项目极大地提高了开发效率。3. 核心算法实现让机器“看懂”焊点缺陷有了清晰的图像和稳固的架构接下来就是最核心的部分算法。PCB焊接缺陷检测的流程可以概括为定位 - 分割 - 特征提取 - 分类判断。3.1 图像预处理与焊盘定位刚采集到的原始图像通常包含噪声、光照不均等问题。预处理的目标是净化图像突出我们关心的焊点区域。* 示例Halcon中的图像预处理流程 read_image (Image, pcb_board.png) * 转换为灰度图减少计算量 rgb1_to_gray (Image, GrayImage) * 使用中值滤波去除椒盐噪声同时保护边缘 median_image (GrayImage, ImageMedian, circle, 2, mirrored) * 使用同态滤波或自适应直方图均衡化来改善光照不均 homomorphic_filter (ImageMedian, ImageFiltered, 0.7, 1.5, 0.5, dc_center, simple)预处理后需要精确找到每一个焊盘的位置。这里模板匹配Shape-Based Matching是首选。我们先制作一个“黄金样本”无缺陷的PCB板图像从中提取一个标准焊盘的轮廓作为模板。* 创建形状模板 draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2) reduce_domain (ImageFiltered, Rectangle, ImageReduced) create_shape_model (ImageReduced, auto, -0.39, 0.79, auto, auto, use_polarity, auto, auto, ModelID) * 在待检测图像中寻找该模板 find_shape_model (ImageFiltered, ModelID, -0.39, 0.79, 0.8, 1, 0.5, least_squares, 0, 0.9, Row, Column, Angle, Score)find_shape_model会返回所有匹配到的焊盘位置Row, Column和角度Angle。这个步骤的准确性至关重要因为后续的所有分析都基于这个定位结果。3.2 焊点分割与特征提取定位到焊盘后我们需要将焊锡区域从焊盘上“抠”出来。由于焊锡表面光滑反光特性与周围不同动态阈值Dynamic Thresholding或局部阈值方法比全局阈值更有效。* 以每个定位点为中心定义一个感兴趣区域ROI gen_rectangle2 (ROI, Row, Column, 0, 20, 20) reduce_domain (ImageFiltered, ROI, ImageROI) * 使用动态阈值根据局部邻域的均值进行分割 mean_image (ImageROI, ImageMean, 11, 11) dyn_threshold (ImageROI, ImageMean, RegionDynThresh, 15, light) * 连接相邻区域并选择面积合适的区域作为焊点 connection (RegionDynThresh, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, area, and, 50, 99999)分割出焊点区域SelectedRegions后就可以提取用于判断缺陷的特征了。常用的特征包括面积Area焊锡过多或过少。紧密度Compactness形状是否接近圆形。虚焊可能形状不规则。灰度均值GrayMean反映焊锡表面的反光程度与焊接质量相关。最小外接圆半径Radius与面积结合判断焊点大小。区域与定位模板的重叠度判断焊锡是否偏移。在Halcon中可以一次性计算多个特征area_center (SelectedRegions, Area, Row1, Column1) compactness (SelectedRegions, Compactness) min_max_gray (SelectedRegions, ImageROI, 0, MinGray, MaxGray, Range) smallest_circle (SelectedRegions, RowCenter, ColCenter, Radius)3.3 缺陷分类与判断逻辑提取出特征后如何判断一个焊点是好是坏我们采用基于规则的分类器。首先需要收集一批已知缺陷类型的样本良品、虚焊、漏焊、桥接等计算它们的特征值观察其分布规律从而设定阈值。例如对于漏焊最直接的特征是焊点区域面积极小或根本找不到分割区域。对于虚焊焊点区域可能存在但其紧密度较差形状不规则灰度均值也可能偏低表面氧化或不光滑。对于桥接则需要检查相邻两个焊点区域是否发生了连接。我们可以将这些规则编写成一个决策树是否存在焊点区域如果Area 阈值1判定为漏焊。焊点形状是否规整如果Compactness 阈值2紧密度越低越不规则判定为虚焊。焊点面积是否过大如果Area 阈值3可能为锡多。相邻焊点区域是否连通计算两个焊点区域之间的距离如果小于一个像素宽度且区域相连判定为桥接。在Halcon中可以用条件语句实现* 假设我们已经有了一个焊点区域 SolderRegion 和其特征值 Area, Compactness if (Area MinAreaThreshold) * 判定为漏焊 concat_obj (MissingSolderRegions, SolderRegion, MissingSolderRegions) else if (Compactness CompactnessThreshold) * 判定为虚焊 concat_obj (PoorSolderRegions, SolderRegion, PoorSolderRegions) endif if (Area MaxAreaThreshold) * 判定为锡多 concat_obj (ExcessSolderRegions, SolderRegion, ExcessSolderRegions) endif endif注意这些阈值MinAreaThreshold,CompactnessThreshold等不是拍脑袋决定的。最好通过统计一批已知好坏样本的特征值绘制分布图在良品和缺陷品的特征分布交界处选取阈值。Halcon的inspect_shape_model或features_histogram算子可以帮助你分析特征分布。对于更复杂的缺陷或追求更高准确率可以考虑使用机器学习或深度学习。Halcon也内置了丰富的ML工具比如支持向量机SVM、多层感知机MLP以及深度学习模型。你可以将提取的面积、紧密度等特征作为特征向量训练一个分类器。甚至可以直接使用深度学习进行端到端的检测但这需要大量的标注数据。4. 系统集成、测试与性能优化当各个模块都开发完成后就需要将它们集成到一个流畅运行的系统中并进行充分的测试和优化。4.1 C#主程序与Halcon引擎的深度集成在C#主程序中我们需要管理整个检测流程的状态机。一个典型的状态循环如下等待触发等待传感器信号或手动启动。图像采集控制相机拍照获取图像。调用视觉处理将图像传递给Halcon引擎执行缺陷检测算法。结果处理接收Halcon返回的缺陷信息类型、位置、图像区域。决策与输出根据缺陷情况控制IO卡输出信号如触发报警灯、控制气缸将不良品推出。数据记录将本次检测结果包括时间、板子ID、缺陷快照保存到数据库。UI更新在界面上实时显示图像、结果和统计信息。这里要特别注意多线程的应用。图像处理和算法调用是耗时操作如果在UI主线程中执行会导致界面卡死。正确的做法是使用后台线程如Task或BackgroundWorker来处理视觉任务。private async void btnStartInspection_Click(object sender, EventArgs e) { btnStartInspection.Enabled false; // 在后台线程执行检测任务 var result await Task.Run(() { // 1. 采集图像 HObject currentImage camera.CaptureImage(); // 2. 调用Halcon处理 InspectionResult inspResult visionProcessor.ProcessImage(currentImage); // 3. 返回结果 return inspResult; }); // 任务完成后回到UI线程更新界面 this.Invoke(new Action(() { DisplayResult(result); UpdateStatistics(result); btnStartInspection.Enabled true; })); }4.2 测试与性能调优系统搭建好后需要用大量样本包括各种缺陷类型的PCB板进行测试。测试的目标有两个准确性和速度。准确性测试准备数百块已知缺陷状态的PCB板让系统检测并记录其判断结果。通过计算检出率Recall、误报率False Positive Rate和准确率Accuracy来量化系统性能。检出率 正确检出的缺陷数 / 实际总缺陷数 误报率 误报为缺陷的良品数 / 实际总良品数 准确率 所有正确判断的板数 / 总板数如果检出率低说明算法太严格漏掉了真缺陷需要放宽阈值。如果误报率高说明算法太宽松把好的也判成坏的需要收紧阈值。这是一个反复调整的过程。速度测试使用秒表或代码计时测量从拍照到输出结果的总时间。我们的目标是满足生产节拍例如每秒检测2-3块板。速度瓶颈通常出现在两个方面算法复杂度检查Halcon脚本是否有多余的循环或计算量大的算子。尝试使用count_seconds来测量每个步骤的耗时。数据传递Halcon与C#之间大量图像数据的传递会有开销。如果可能尽量在Halcon端完成所有图像处理只将结果几个数值和坐标传回C#。一些实用的优化技巧ROI感兴趣区域不要对整个大图像进行处理。先定位然后只在每个焊盘周围的小区域内进行精细处理能极大减少计算量。图像金字塔在模板匹配时使用图像金字塔可以加速搜索过程。并行处理如果CPU有多核心可以尝试将不同区域的检测任务分配到不同线程。Halcon本身支持多线程可以通过set_system(parallelize_operators, true)开启算子并行。缓存与复用对于不变的模板、标定参数等只需在程序初始化时加载一次避免重复计算。4.3 部署与维护最后将调试好的程序部署到工业现场的工控机上。记得将Halcon的运行时库Runtime License一并安装。创建一个清晰的配置文件如Config.ini或AppSettings.json将相机IP、曝光时间、检测阈值、数据库连接字符串等所有可调参数放在里面。这样现场工程师不需要重新编译程序只需修改配置文件就能适配不同的产品或微调参数。维护阶段完善的日志系统至关重要。记录每一次检测的详细信息、发生的任何异常这能帮助你在出现问题时快速定位。我们当时的系统就曾因为车间电压不稳导致相机偶尔丢帧正是通过日志发现并解决了问题。这套基于Halcon和C#的PCB焊接缺陷检测系统从构思到最终在产线上稳定运行我们花了大约三个月。它可能没有商业AOI系统那么华丽的功能但完全满足了客户对核心缺陷虚焊、漏焊、桥接的检测需求并且成本只有前者的三分之一。更重要的是整个开发过程积累的经验和对机器视觉技术的深入理解是任何现成产品都无法给予的。如果你正面临类似的挑战希望这篇文章能为你提供一个坚实的起点。记住从第一个清晰的图像开始从第一个成功定位的焊盘开始一步步构建你的系统。

相关新闻

React19+Vite6实战:从SWC编译到ESLint9扁平化配置的全流程避坑指南

React19+Vite6实战:从SWC编译到ESLint9扁平化配置的全流程避坑指南

React 19 Vite 6 企业级实战:从SWC编译到ESLint 9扁平化配置的深度避坑指南 最近在帮几个团队重构前端工程时,我发现很多开发者对React 19官方推荐的Vite构建工具链仍停留在“能用就行”的阶段。他们往往在项目初期快速搭建起一个看似完整的架子&#x…

2026/5/17 12:15:13 阅读更多 →
避坑指南:数据科学中5种共线性检测方法的实际应用场景

避坑指南:数据科学中5种共线性检测方法的实际应用场景

避坑指南:数据科学中5种共线性检测方法的实际应用场景 刚入行做数据分析那会儿,我最怕听到的词就是“共线性”。教科书上那些定义和公式背得滚瓜烂熟,什么方差膨胀因子(VIF)、相关系数矩阵,说起来头头是道。…

2026/5/17 12:15:12 阅读更多 →
仿射变换:九点标定背后的数学与工程实践

仿射变换:九点标定背后的数学与工程实践

1. 九点标定:机器视觉的“通用语言”翻译官 刚入行做机器视觉项目那会儿,我最头疼的就是“鸡同鸭讲”。相机拍回来的照片,告诉我目标在像素坐标(200, 300)的位置。我兴冲冲地把这个坐标告诉机械手&#xff…

2026/7/4 18:44:35 阅读更多 →

最新新闻

Si5351A与ATSAME70Q21B实现高精度时钟管理方案

Si5351A与ATSAME70Q21B实现高精度时钟管理方案

1. 项目背景与核心需求在嵌入式系统和数字电路设计中,稳定的时钟信号如同人体的脉搏,是确保系统正常运转的基础。无论是汽车电子中的ECU控制单元,还是工业自动化设备中的实时通信,都需要高精度的频率参考来同步各个模块的时序。传…

2026/7/6 6:40:58 阅读更多 →
A5000与PIC18F2585实现嵌入式设备安全云连接方案

A5000与PIC18F2585实现嵌入式设备安全云连接方案

1. 项目概述:A5000与PIC18F2585的安全云连接方案在物联网设备爆炸式增长的今天,安全连接已成为嵌入式系统设计的核心挑战。我最近完成了一个采用NXP A5000安全芯片与Microchip PIC18F2585微控制器的安全连接方案,这个组合为资源受限的嵌入式设…

2026/7/6 6:40:58 阅读更多 →
LTC6904与TM4C123实现高精度方波脉冲控制方案

LTC6904与TM4C123实现高精度方波脉冲控制方案

1. 项目概述:高精度方波脉冲生成方案在嵌入式系统开发中,精确的时序控制往往决定着项目的成败。LTC6904这款低功耗可编程振荡器与TM4C123GH6PZ微控制器的组合,为需要纳秒级精度时序控制的场景提供了经济高效的解决方案。我曾在一个工业自动化…

2026/7/6 6:38:57 阅读更多 →
3分钟极速指南:如何通过手机号码实现精准地图定位的完整方案

3分钟极速指南:如何通过手机号码实现精准地图定位的完整方案

3分钟极速指南:如何通过手机号码实现精准地图定位的完整方案 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/g…

2026/7/6 6:38:57 阅读更多 →
如何快速配置Wand游戏增强工具:完整免费使用教程

如何快速配置Wand游戏增强工具:完整免费使用教程

如何快速配置Wand游戏增强工具:完整免费使用教程 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否希望获得完整的游戏修改体验&#xf…

2026/7/6 6:36:57 阅读更多 →
IS31FL3731 LED驱动芯片与PIC18F47K40微控制器的应用指南

IS31FL3731 LED驱动芯片与PIC18F47K40微控制器的应用指南

1. 项目背景与核心器件选型当我们需要在有限的空间内实现复杂的LED灯光效果时,传统驱动方案往往会面临引脚资源紧张、布线复杂等问题。IS31FL3731这款LED驱动芯片配合PIC18F47K40微控制器的组合,恰好能优雅地解决这些痛点。IS31FL3731是一款采用I2C接口的…

2026/7/6 6:36:57 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻