维吉尼亚密码攻防实战:从原理到四种经典破译方法详解
1. 项目概述从古典密码到实战攻防维吉尼亚密码这个名字对于很多刚接触密码学的朋友来说可能既熟悉又陌生。熟悉是因为它常常作为“凯撒密码的升级版”出现在各种入门教程里陌生则在于一旦真正动手去分析它就会发现其精巧的结构背后隐藏着远比凯撒密码复杂得多的攻防逻辑。我最初接触它是在一个内部的安全意识培训项目里当时我们需要设计一些“可被破解”的加密挑战来训练新人的分析思维维吉尼亚密码以其“看似复杂实则规律可循”的特性成为了绝佳的教学案例。简单来说维吉尼亚密码是一种多表替换密码。它不再像凯撒密码那样整篇明文都使用同一个固定的偏移量比如所有字母右移3位而是引入了一个关键词Keyword。加密时明文的每个字母会根据关键词中对应字母的序号A0, B1, ..., Z25进行不同偏移量的凯撒加密。正是这种“动态变化”的加密方式让它在一段时期内被认为是非常安全的甚至获得了“不可破译的密码”的称号。当然历史证明这个称号过于乐观了但这也恰恰说明了其设计的巧妙之处。这篇文章我将从一个实践者的角度不仅带你彻底弄懂维吉尼亚密码的加密解密原理更重要的是深入剖析四种针对它的经典攻击策略卡西斯基试验Kasiski Examination、重合指数法Index of Coincidence、弗里德曼测试Friedman Test以及基于密钥长度的暴力破解。我会分享在实际密码分析挑战赛中如何将这些方法组合运用一步步从一段看似杂乱无章的密文倒推出密钥和原始明文的全过程。无论你是信息安全的学生、CTFCapture The Flag比赛的爱好者还是单纯对古典密码背后的逻辑着迷这篇文章都将提供一套完整的、可实操的“破译工具箱”。2. 维吉尼亚密码的核心原理与实现细节要攻击一个密码系统首先必须彻底理解它。维吉尼亚密码的原理是后续所有攻击策略的基石。2.1 加密过程关键词驱动的多表替换维吉尼亚密码的加密需要两个输入明文Plaintext和关键词Keyword。通常我们会将明文中的非字母字符如空格、标点去除并统一转换为大写以简化处理。核心操作步骤关键词重复将关键词重复书写直到其长度与明文一致。例如明文为“ATTACKATDAWN”12个字母关键词为“LEMON”5个字母则重复后的密钥流为“LEMONLEMONLE”。字母到数字的映射按照A0, B1, ..., Z25的规则将明文和密钥流中的每个字母转换为对应的数字。模26加法将明文数字和对应位置的密钥流数字相加然后对26取模。数字到字母的逆映射将上一步得到的数字结果再转换回字母即得到密文。公式表示C_i (P_i K_i) mod 26其中C_i是密文第i个字母的数字P_i是明文第i个字母的数字K_i是密钥流第i个字母的数字。实操示例让我们手动加密“HELLO”这个词关键词选用“KEY”。明文 H E L L O - (7, 4, 11, 11, 14)密钥重复后 K E Y K E - (10, 4, 24, 10, 4)加密计算(7 10) mod 26 17 - R(4 4) mod 26 8 - I(11 24) mod 26 35 mod 26 9 - J(11 10) mod 26 21 - V(14 4) mod 26 18 - S密文 R I J V S注意在实际的古典密码应用中为了增加频率分析的难度有时会故意保留单词间的空格或使用特定格式但这并不影响核心的加密算法。在我们的分析和攻击中通常先做规范化处理即去除所有非字母字符并统一大小写。2.2 解密过程加密的逆运算解密是加密的逆过程公式为P_i (C_i - K_i) mod 26这里需要注意的是在模运算中(C_i - K_i)可能出现负数这时需要加上26再取模。例如(0 - 5) mod 26 (-5) mod 26 21。继续上面的例子已知密文“RIJVS”和关键词“KEY”解密过程如下密文 R I J V S - (17, 8, 9, 21, 18)密钥 K E Y K E - (10, 4, 24, 10, 4)解密计算(17 - 10) mod 26 7 - H(8 - 4) mod 26 4 - E(9 - 24) mod 26 -15 mod 26 11 - L(21 - 10) mod 26 11 - L(18 - 4) mod 26 14 - O还原明文 HELLO2.3 为什么它比凯撒密码更安全—— 频率分析的失效单表替换密码如凯撒密码、简单替换密码最大的弱点在于字母频率分布。在一种语言中比如英语字母E、T、A、O、I、N的出现频率远高于J、Q、X、Z。加密只是将字母映射到另一个字母这种频率分布特征在密文中被完整保留。攻击者通过统计密文字母频率并与标准频率表对比很容易就能猜出大部分映射关系。维吉尼亚密码通过引入关键词实现了多表替换。明文中同一个字母在不同位置可能因为对应的密钥字母不同而被加密成不同的密文字母。例如明文“E”在密钥为“A”时被加密为“E”在密钥为“B”时被加密为“F”。这就在很大程度上“打乱”了密文的单字母频率分布使其更接近随机分布从而抵御了基础的频率分析攻击。其安全性直接取决于关键词的长度和随机性。关键词越长重复周期越长频率特征就越隐蔽关键词越随机无意义单词猜测难度就越大。3. 攻击策略一卡西斯基试验——寻找密钥长度的蛛丝马迹卡西斯基试验是19世纪由普鲁士军官弗里德里希·卡西斯基提出的一种方法其核心思想是通过寻找密文中重复出现的片段来推测密钥的长度。3.1 攻击原理重复片段暴露密钥周期为什么密文中会出现重复的片段根本原因在于**“明文重复”与“密钥对齐”**。 假设密钥长度为L。当明文中出现两个相同的单词或短语例如“THE”且它们之间的间隔距离正好是密钥长度L的整数倍时那么加密这两个“THE”的密钥字母序列就是完全相同的。根据加密公式C (P K) mod 26相同的P加上相同的K必然得到相同的C。于是密文中就会出现重复的片段。攻击步骤扫描密文在密文中寻找所有长度至少为3通常为3或4的重复字母序列。记录位置记下每个重复序列在密文中首次出现和第二次出现的起始位置。计算间隔计算这些重复片段之间的间隔距离。分析公约数计算所有这些间隔距离的最大公约数GCD。这个最大公约数有很大的可能性就是密钥的长度。有时为了更准确会取这些间隔的所有正因数的集合出现次数最多的那个因数很可能是密钥长度。3.2 实战演练与注意事项假设我们截获了一段密文已去除空格VPXZTIQKTZWSQPDVCVPXZTIAMOUIZ我们手动进行卡西斯基试验寻找重复序列我们一眼就能看到“VPXZTI”这个长序列重复了。记录位置第一次出现在开头位置0第二次出现在第13个字母开始位置12因为从0开始计数。计算间隔12 - 0 12。分析目前只有一个间隔12。那么密钥长度可能是12的因数1, 2, 3, 4, 6, 12。长度1是凯撒密码基本排除长度2或3对于短关键词可能性较大。我们需要更多密文或结合其他方法确认。实操心得卡西斯基试验在密文足够长、明文有显著重复模式如常见单词、固定格式开头时效果极佳。但在密文较短或明文内容非常随机的情况下可能找不到足够多或足够长的重复片段。此时不能武断地认为没有重复片段就意味着密钥很长可能需要直接使用下文的“重合指数法”进行更数学化的估算。在实际CTF比赛中出题人有时会故意选用不含明显重复模式的明文来增加卡西斯基试验的难度。4. 攻击策略二重合指数法与弗里德曼测试——数学武器估算密钥长度当卡西斯基试验失效或结果模糊时我们需要更可靠的数学工具。这就是重合指数Index of Coincidence, IC和由其衍生的弗里德曼测试。4.1 重合指数衡量文本的“随机性”重合指数的定义是从一段文本中随机抽取两个字母它们相同的概率。对于完全随机的26个字母每个字母等概率出现这个概率是1/26 ≈ 0.0385。 对于一篇正常的英文文本由于字母频率不均E多Q少随机抽到两个相同字母的概率会更高大约在0.065到0.075之间。计算公式IC (∑ (n_i * (n_i - 1))) / (N * (N - 1))其中n_i是字母i在文本中出现的次数i从A到ZN是文本的总字母数。这个性质如何用于攻击维吉尼亚密码如果密钥长度是L那么密文可以被看作L组“子密文”的叠加第1组由所有第1个、第(L1)个、第(2L1)个...字母组成它们都是用密钥的第一个字母加密的。第2组由所有第2个、第(L2)个、第(2L2)个...字母组成它们都是用密钥的第二个字母加密的。... 以此类推。对于每一组子密文由于它们是用同一个密钥字母加密的因此相当于做了一次单表替换一个复杂的凯撒密码。单表替换不会改变原始语言的字母频率分布所以如果我们的分组是正确的即猜测的密钥长度L’等于真实的L那么每一组子密文的IC值应该接近英文文本的IC值~0.067。如果我们的分组是错误的那么每组子密文就是由不同密钥字母加密的字母混合而成其统计特性会更接近随机文本IC值会接近随机值~0.0385。4.2 弗里德曼测试自动化猜测密钥长度弗里德曼测试将上述思想公式化给出了一个直接估算密钥长度L的公式L ≈ (0.0265 * N) / ((0.065 - IC_observed) N*(IC_observed - 0.0385))其中N是密文总长度IC_observed是整个密文计算出的重合指数。实操步骤计算整个密文的IC值IC_observed。将IC_observed和密文长度N代入弗里德曼公式得到一个密钥长度L的近似估计值通常是一个小数。取这个估计值附近的整数如向上/向下取整或取最接近的整数作为候选密钥长度。示例假设一段1000字母的密文计算其IC值为0.045。 代入公式L ≈ (0.0265 * 1000) / ((0.065 - 0.045) 1000*(0.045 - 0.0385)) ≈ 26.5 / (0.02 6.5) ≈ 26.5 / 6.52 ≈ 4.06因此我们猜测密钥长度很可能为4。注意事项弗里德曼公式给出的只是一个估计尤其在密文较短时误差可能较大。它最大的价值是给我们一个关键的搜索起点。通常的做法是用弗里德曼测试得到一个估计值L0然后分别测试 L0-2, L0-1, L0, L01, L02 这几个长度对每个候选长度L’将密文分成L’组分别计算每组的IC值然后求平均值。那个使得平均IC值最接近0.067的L’就是最有可能的密钥长度。这个过程完全可以写一个小程序来自动化完成。5. 攻击策略三基于密钥长度的分组频率分析一旦我们通过卡西斯基试验或重合指数法或两者结合确定了密钥长度L攻击就从“破译整个密码系统”降维成了“破译L个独立的单表替换密码”。这是最关键的转折点。5.1 分组与提取子密文假设我们确信密钥长度L4。那么第1组子密文对应密钥第1位包含密文第1, 5, 9, 13...个字母。第2组子密文对应密钥第2位包含密文第2, 6, 10, 14...个字母。第3组子密文对应密钥第3位包含密文第3, 7, 11, 15...个字母。第4组子密文对应密钥第4位包含密文第4, 8, 12, 16...个字母。现在我们得到了4段文本。每一段都是原始明文经过一个固定偏移的凯撒密码或者说一个固定密钥字母的单表替换加密后的结果。因为分组依据是密钥位置所以同一组内的所有明文字母都是用同一个密钥字母加密的。5.2 对每组子密文进行频率分析这是最需要耐心和技巧的一步。我们对每一组子密文单独进行字母频率统计。操作流程为第i组子密文统计其中A到Z每个字母出现的次数并计算频率。将得到的频率分布与标准英文字母频率分布进行对比。标准频率分布可以参考如下近似值字母频率字母频率字母频率E12.7%T9.1%A8.2%O7.5%I7.0%N6.7%S6.3%H6.1%R6.0%D4.3%L4.0%C2.8%U2.8%M2.4%W2.4%F2.2%G2.0%Y2.0%P1.9%B1.5%V1.0%K0.8%J0.2%X0.2%Q0.1%Z0.1%寻找偏移量我们假设子密文中出现频率最高的那个字母有很大概率对应明文字母“E”。那么密钥字母就可以推算出来。设子密文频率最高字母为C_max其数字值为c。假设它对应明文E(数字值为4)。根据加密公式C (P K) mod 26可得K (c - 4) mod 26。计算出的K值就是当前组对应的密钥字母的数字值转换为字母即可。重要技巧不要只依赖最高频字母。检查前几名对比子密文中频率最高的前3-5个字母看它们是否大致对应标准频率中的E, T, A, O, I等。如果第二高频的字母对应T第三高频的对应A那么这个偏移量的猜测就非常可靠。计算重合指数辅助验证对猜测解密后的该组明文即用猜测的密钥字母解密该组子密文计算其IC值。如果IC值接近0.067说明解密很可能正确如果接近0.0385则可能猜错了。使用“卡方检验”这是一个更严格的统计方法。计算猜测解密后的文本字母频率与标准英文字母频率的卡方统计量。卡方值越小说明两者分布越相似猜测正确的可能性越大。我们可以对26种可能的密钥字母A-Z都做一次解密和卡方检验选择卡方值最小的那个作为密钥字母候选。5.3 拼接密钥与验证对L组子密文都完成上述分析后我们就得到了一个由L个字母组成的候选关键词。用这个关键词去尝试解密整个密文。验证环节至关重要肉眼观察解密出的明文是否是可读的英文单词、句子这是最直接的判断。检查常见词明文是否包含“THE”、“AND”、“FOR”、“THAT”等常见单词上下文语义解密后的内容在语义上是否通顺如果解密结果看起来是乱码说明我们可能犯了一个或几个错误要么密钥长度猜错了要么在某几组频率分析中猜错了偏移量。这时需要回溯检查例如尝试第二高频字母对应E或者微调密钥长度重新分组分析。6. 攻击策略四已知密钥长度的暴力破解与优化当我们通过前述方法将密钥长度L确定在一个较小范围内例如小于10且密文长度尚可时一种“简单粗暴”但往往有效的策略就是暴力破解。不过这里的暴力破解并非穷举所有可能密钥对于长度L5密钥空间是26^5 ≈ 1188万对于现代计算机虽可接受但并非最优而是有策略的暴力。6.1 基于字典的密钥搜索如果密钥是一个有意义的单词这在古典密码和许多CTF题目中很常见那么我们可以利用字典来大幅缩小搜索范围。构建字典准备一个包含常见英文单词、人名、地名等的词典文件。根据猜测的密钥长度L过滤出所有长度为L的单词。自动化测试编写脚本用词典中的每一个候选关键词去尝试解密密文。自动化评分对每一个解密结果不是靠人眼判断而是通过程序计算一个“可读性分数”。评分标准可以包括IC值解密后文本的IC值应接近0.067。常见单词出现频率统计解密文本中出现的常见英文单词如“the”, “be”, “to”, “of”, “and”的数量。字母和双字母频率匹配度计算解密文本的字母频率分布与标准分布的相似度如卡方检验。输出候选程序输出分数最高的前几个解密结果和对应的密钥由人工进行最终确认。这种方法将暴力破解从“天文数字”降低到“数千至数万次尝试”并且可以完全自动化在实战中效率极高。6.2 针对短密钥的穷举与剪枝即使密钥是无意义的随机字母组合如果长度很短比如L3或426^31757626^4456976完全穷举对于计算机来说也是瞬间完成的。我们可以结合频率分析进行“剪枝”首先用重合指数法或卡西斯基试验确认密钥长度L。对密钥的每一位不直接猜一个字母而是通过频率分析给出一个最有可能的候选字母列表例如根据卡方检验取前3-5个可能性最大的字母。这样密钥的搜索空间就从26^L缩小到了(候选数1) * (候选数2) * ... * (候选数L)。如果每位的候选数是3对于L5搜索空间仅为3^5243可以瞬间穷举并评分。6.3 实战中的组合策略与问题排查在实际攻击中我们很少单独使用某一种策略而是将它们串联起来形成一个分析流水线。典型的攻击流程预处理清洗密文去除非字母字符统一大写。初步探测计算整个密文的IC值。如果IC值非常接近0.0385说明加密可能很强密钥很长或明文很随机或者根本不是维吉尼亚密码。如果IC值在0.04-0.05之间维吉尼亚密码的可能性很大。进行卡西斯基试验寻找重复片段得到一组可能的密钥长度因数。确定密钥长度使用弗里德曼公式计算估计长度L0。结合卡西斯基试验的结果在L0附近选取几个候选长度如L0-1, L0, L01并检查这些长度是否被卡西斯基的间隔距离所支持即是否为间隔的公约数。对每个候选长度L’将密文分L’组计算每组子密文的IC值并求平均。选择平均IC值最接近0.067的那个L’作为最终猜测。破解密钥按确定的长度L分组。对每一组子密文进行详细的频率分析结合卡方检验确定该组最可能的密钥字母。得到完整的候选密钥。解密与验证用候选密钥解密。验证解密文本的可读性。如果失败回到第3步尝试第二可能的密钥长度或回到第4步调整某组密钥字母的猜测例如尝试频率第二的字母对应E。常见问题与排查技巧问题解密结果部分可读部分乱码。排查很可能密钥长度猜对了但某一组或几组子密文的密钥字母猜错了。因为英文频率分布只是统计规律在文本较短时可能出现偏差。重点检查那些在解密文本中显得“突兀”的段落所对应的密钥位置手动尝试替换为附近的其他候选字母。问题卡西斯基试验找不到任何重复片段。排查可能密钥长度等于或超过明文长度或者明文本身是随机的如压缩后的数据。此时应完全依赖重合指数法。如果IC值极低甚至要考虑是否不是维吉尼亚密码。问题弗里德曼测试给出的长度估计与分组平均IC值矛盾。排查密文可能太短导致统计不准。尝试用多个候选长度进行后续的频率分析看哪个能得出更合理的解密结果。有时真实的密钥长度可能是估计值的倍数。问题暴力字典攻击没有结果。排查密钥可能不是英文单词而是缩写、拼音、故意拼错的单词或完全随机的字符串。此时需要扩大字典范围或转向基于频率分析剪枝的穷举法。我个人在多次CTF比赛和教学实践中发现最棘手的往往不是算法本身而是密文长度不足和明文非标准英文比如是代码、技术术语或混合语言。对于短密文统计特征不明显所有基于频率的方法都会失效。这时如果知道密钥是单词字典攻击是唯一希望如果密钥是随机的且长度未知破解就变得非常困难这恰恰体现了维吉尼亚密码在密钥足够长且随机时的理论强度。理解这些攻击策略的边界和局限性与掌握策略本身同样重要。

相关新闻

2027 年 1 月起谷歌停支第三方账户发邮件,Gmail 部分功能将停用

2027 年 1 月起谷歌停支第三方账户发邮件,Gmail 部分功能将停用

谷歌 2027 年调整 Gmail 第三方邮件功能据 Android Authority 报道,自 2027 年 1 月起,谷歌将有一系列针对 Gmail 的调整。其中包括停止支持从雅虎、Outlook 等第三方账户发送电子邮件,同时停用 Gmailify 功能以及在 Gmail 中从第三方账户获取…

2026/8/6 9:46:42 阅读更多 →
FlutterFlow团队推出免费工具Campus:告别上下文切换,开启二维工作新体验!

FlutterFlow团队推出免费工具Campus:告别上下文切换,开启二维工作新体验!

上下文切换的时代几年前,开发工作组织简单,规划后一两周专注开发。智能代码编写工具改变一切,并行工作成常态,代价是上下文切换,让软件工程工作更累。我为什么把智能体放进《我的世界》过去一年热衷探索工作上下文环境…

2026/8/6 9:46:42 阅读更多 →
别再瞎降重!✅这款靠谱AI论文软件,才是论文降重的正确打开方式

别再瞎降重!✅这款靠谱AI论文软件,才是论文降重的正确打开方式

写论文最崩溃的瞬间:查重一飘红,改完又超标,降重完逻辑全乱😭 很多同学为了降重,换了无数个AI论文工具,结果踩坑不断!要么机械换词、句子不通顺,要么改完数据出错、专业术语乱改&am…

2026/8/6 9:45:42 阅读更多 →

最新新闻

宝可梦Re-ment摇曳秋千第四弹:动态展示摆件开箱与玩法全解析

宝可梦Re-ment摇曳秋千第四弹:动态展示摆件开箱与玩法全解析

1. 先搞清楚“宝可梦Re-ment摇曳秋千”到底是什么,以及第四弹值不值得入手 如果你在寻找桌面上的精致小摆件,或者想给宝可梦模型找一个有趣又稳固的展示底座,那么“宝可梦Re-ment摇曳秋千”系列绝对值得一看。这个系列的核心不是宝可梦模型本…

2026/8/6 10:41:09 阅读更多 →
LVDT解调技术深度解析:整流器型与同步解调方案选型指南

LVDT解调技术深度解析:整流器型与同步解调方案选型指南

1. LVDT解调技术:从原理到选型的深度实践 在工业测量与控制领域,线性可变差动变压器(LVDT)因其无接触、高可靠性、无限分辨率以及卓越的鲁棒性,一直是精密位移测量的中流砥柱。然而,许多工程师在初次接触LV…

2026/8/6 10:41:09 阅读更多 →
大模型半年报:从RSI到斩杀线,解读技术热点与本地部署实战

大模型半年报:从RSI到斩杀线,解读技术热点与本地部署实战

这次我们来看一份关于大模型技术发展的“半年报”。这份报告并非来自某个官方机构,而是对过去半年里,几个关键技术和产品动向的集中梳理。标题中提到的“RSI”、“Fable”、“5.2”、“混元3”、“龙猫”以及“斩杀线”,每一个词背后都代表着…

2026/8/6 10:41:09 阅读更多 →
用码道 AI 编程助手开发曼德博集分形可视化网页应用

用码道 AI 编程助手开发曼德博集分形可视化网页应用

一段需求,码道自动写出 664 行、约 21 KB 的单文件分形浏览器——Canvas 渲染 Web Worker 后台分块计算、鼠标拖拽/滚轮缩放、迭代次数可调、8 个经典坐标视图一键跳转,双击 HTML 就能看到绚丽的曼德博集 分类: ai-development 标签: CodeArts, AI编程,…

2026/8/6 10:41:09 阅读更多 →
装配电工定向批量输送要注意什么?企业容易忽略哪些细节?

装配电工定向批量输送要注意什么?企业容易忽略哪些细节?

深耕制造业蓝领用工与产线工艺配套15年,见过无数自动化工厂被装配电工用工问题拖垮产能:紧急扩产缺人、批量补人后技能不匹配、新员工短期批量流失,甚至因证书不合规面临安监处罚。 绝大多数企业的用工损耗,不是缺人手&#xff0c…

2026/8/6 10:41:09 阅读更多 →
ESP32多串口驱动开发:从引脚配置到事件驱动实战

ESP32多串口驱动开发:从引脚配置到事件驱动实战

1. 项目缘起:为什么ESP32需要用好两个串口? 在嵌入式开发里,串口(UART)的地位,大概就相当于我们日常交流的嘴巴和耳朵。它简单、可靠、历史悠久,是单片机与外部世界沟通最基础、最常用的方式。E…

2026/8/6 10:40:08 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →