HTTPS原理与抓包实战:从TLS握手到证书调试
1. 为什么HTTPS值得你花时间学透1.1 从一次裸奔抓包说起几年前我在排查一个接口超时问题时用抓包工具一看某个老系统还在跑纯HTTP。请求里的登录令牌、手机号、订单金额全部明文躺在数据包里旁边就是无线网络里的其他流量。那一刻我才真正意识到HTTP协议在安全层面就像一个不设防的房间门没锁窗帘没拉谁路过都能往里看一眼。也就是从那次之后我开始系统性地啃HTTPS把SSL、TLS、CA、抓包与修改这一整条链路都过了一遍。很多人觉得HTTPS不就是HTTP加个锁嘛背几个概念就完事了。但真正动手抓包、改包、排查证书问题的时候才发现里面全是细节TLS握手为什么有时候快有时候慢证书链验证到底验证了什么抓包工具为什么能解密HTTPS流量懂原理的人几分钟定位问题不懂原理的人只能靠重启、换工具、清缓存三板斧。这篇笔记就是把我踩过的坑和梳理清楚的知识点一起整理出来适合三类人看一是刚接触网络协议、想搞明白HTTPS底层逻辑的初学者二是工作中经常要调试接口、排查网络问题的开发或测试三是对抓包与安全测试感兴趣、想深入了解流量分析的朋友。1.2 HTTPS到底解决了什么先明确一个基础认知HTTP是明文协议数据在网络上传输时任何能接触到链路的设备都有可能读取甚至篡改内容。这不是危言耸听公共WiFi、运营商链路、路由器日志任何一个环节出了问题你的数据就可能被第三方看到。HTTPS做的事情概括起来就三件加密传输内容、验证服务器身份、保证数据完整性。加密传输内容解决的是偷看问题用的是混合加密体系这一点后面细说。验证服务器身份解决的是伪装问题防止你连接到一个冒牌的银行网站或钓鱼接口这里靠的是CA数字证书体系。保证数据完整性解决的是篡改问题防止数据在传输过程中被悄悄修改比如把你转账的金额从100改成10000。这三件事听起来简单但实现起来要考虑的性能开销、兼容性、证书管理等问题非常多。下面几个章节我会从TLS协议本身、CA证书体系、抓包实操、修改重放几个角度把这条链路完整过一遍。2. SSL/TLS协议HTTPS安全的地基2.1 对称加密与非对称加密的分工HTTPS的加密体系不是只用一种加密算法而是把对称加密和非对称加密组合起来用。理解这一点是整个TLS协议的基础。对称加密的特点是快加密和解密用同一个密钥比如AES算法。但问题也明显怎么把这个密钥安全地告诉对方如果通过网络传输密钥那密钥本身就可能被截获加密就失去了意义。非对称加密的特点是安全它有一对密钥公钥和私钥。公钥可以公开分发私钥必须保密。用公钥加密的数据只能用私钥解密反过来用私钥签名的东西可以用公钥验签。TLS的设计思路是用非对称加密来安全地协商出一个对称密钥然后后续所有业务数据都用这个对称密钥加密传输。这样既解决了密钥分发问题又兼顾了性能。打个比方非对称加密像保险柜用来传递一把房间钥匙对称加密像房间门锁三秒就能开关一次。你不可能每次进门都对一遍保险柜密码但用保险柜把钥匙送过来之后日常进出都用钥匙就够了。2.2 TLS握手流程拆解以TLS 1.2为例TLS握手是HTTPS连接建立的核心环节。以目前兼容性最好的TLS 1.2为例我把完整流程拆开来讲理解了这个流程后面排查看问题会顺手很多。第一步客户端发送ClientHello。这里面包含客户端支持的TLS版本、加密套件列表、一个随机数。第二步服务器回复ServerHello选定双方都支持的TLS版本和加密套件同时带上服务器自己生成的随机数。紧接着服务器会发送自己的证书链Certificate有些场景还会请求客户端证书CertificateRequest最后发送ServerHelloDone表示这个阶段结束。第三步客户端验证服务器证书。验证通过之后客户端生成第三个随机数用服务器证书里的公钥加密这个随机数即预主密钥发送给服务器ClientKeyExchange。客户端和服务器此时都拿到了三个随机数各自通过约定的算法推导出会话密钥。然后客户端发送ChangeCipherSpec表示后续消息开始加密再发送EncryptedHandshakeMessage完成握手确认。第四步服务器同样发送ChangeCipherSpec和EncryptedHandshakeMessage。双方握手完成开始用对称密钥加密业务数据。这里的核心点在于三个随机数和预主密钥最终会话密钥由三个随机数共同推导客户端发送的预主密钥用服务器公钥加密即使被截获也无法解密。这样设计的巧妙之处在于非对称加密只用来传递几十字节的密钥材料真正的海量业务数据全部走对称加密性能开销被控制在合理范围内。2.3 握手过程中的细节与陷阱实际抓包观察握手过程时有几个细节值得关注。第一个是加密套件的选择顺序。客户端把自己支持的套件列出来服务器选一个。如果服务器选了强度较弱的套件连接也能建立但安全性就打了折扣。有时候排查弱加密算法告警就要去服务器配置里调整允许的套件范围。第二个是TLS版本协商。客户端声称自己支持的最高版本是TLS 1.3服务器如果只支持到1.2那就退回1.2。抓包时如果看到ClientHello里支持的版本列表和实际协商结果不一样不用慌这是正常的版本协商机制。真正要警惕的是Downgrade Attack降级攻击好在TLS 1.3加入了降级保护机制能在版本被强制压低时识别出来。第三个是会话恢复机制。每次新建连接都走一遍完整握手成本不低。TLS支持会话复用客户端缓存会话ID或者使用会话票证Session Ticket机制在短时间内重新连接时可以跳过部分握手步骤。这也是为什么有些HTTPS应用第二次访问明显比第一次快。我在实际排查中遇到过一个问题内网某个服务TLS握手要耗时800毫秒以上而正常应该是几十毫秒。抓包后发现客户端每次连接都走完整握手没有使用会话复用。原因是客户端和服务器对会话票证的加密密钥不一致每次新连接都没法复用会话。这个问题的排查思路就是先看握手流程是否完整再确认会话复用相关配置是否匹配。3. CA体系与数字证书让信任可验证3.1 证书里到底装了什么TLS握手时服务器会把证书发给客户端但证书到底是什么很多人只有一个模糊概念。简单来说数字证书是一条包含公钥和身份信息的电子凭证由证书签发机构CA签名。它解决的是这样一个问题你收到的公钥到底是不是属于你正在连接的那台服务器的公钥一张常见的X.509证书包含这些核心字段字段作用版本号与序列号标识证书本身签名算法标明证书使用的签名算法签发者Issuer签发这张证书的CA名称有效期证书的生效与过期时间主体Subject证书持有者信息如域名、组织名公钥证书持有者的公钥扩展项密钥用途、域名限制、CRL分发点等很多人不知道证书扩展项的重要性。比如Basic Constraints里的CA标志决定了这张证书能不能继续签发下级证书Subject Alternative NameSAN里列出了证书可用的域名列表浏览器验证域名对不对主要看的就是SAN字段而不是Common Name。老教程总说看CN实际上现在主流浏览器都强制校验SANCN字段已经基本退出历史舞台了。3.2 证书链的验证过程证书验证不是单张完成的而是一条链。最底层是服务器证书叶子证书它由中间CA签发中间CA又由根CA签发。根CA证书预装在操作系统或浏览器里形成信任锚点。验证流程大致是这样客户端拿到服务器证书后先检查证书的有效期和域名是否匹配然后查询证书的签发者信息找到签发者证书再用签发者证书的公钥验证当前证书的签名。这样一层层向上追溯直到找到一个本地信任的根证书。如果其中有任何一环签名验证失败、证书过期、域名不匹配验证就不通过。这里面最值得注意的一个操作细节是证书吊销。证书泄露或私钥丢失后CA会吊销证书浏览器通过CRL证书吊销列表或OCSP在线证书状态协议来检查证书状态。抓包排查时如果遇到某个站点突然提示证书不可信除了看证书链是否完整还应该看OCSP服务器是否可达。我遇到过内网环境下OCSP请求被防火墙拦截导致证书验证超时的情况这种问题不熟悉原理的人很难想到。3.3 自签名证书与内部测试环境的玩法开发测试环境通常不会买商业证书最常见的做法是自建CA并签发证书。这一套流程在生产环境价值不大但在理解HTTPS机制和搭建本地测试环境时非常有用。用OpenSSL生成自签名证书的套路是固定的。先创建CA私钥和根证书然后用根证书给目标域名签发服务器证书。大致命令如下# 1. 生成CA私钥 openssl genrsa -out ca.key 2048 # 2. 生成CA根证书有效期设为10年方便长期使用 openssl req -x509 -new -nodes -key ca.key -days 3650 -out ca.crt # 3. 生成服务器私钥 openssl genrsa -out server.key 2048 # 4. 生成证书签名请求域名写你的测试域名SAN要写对 openssl req -new -key server.key -out server.csr # 5. 使用CA根证书签发服务器证书 openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \ -out server.crt -days 825 -sha256 -extfile san.ext注意第四步和第五步之间SAN配置非常重要。openssl命令行默认不会带上你输入的子jectAltName必须通过-extfile参数指定。我最初做自签名证书时curl访问一直报域名不匹配折腾了半天才发现是SAN字段没有生成根本原因是配置文件的写法不对。后来我自己写了一个san.ext内容类似这样subjectAltNameDNS:test.example.local,DNS:*.example.local,IP:192.168.1.10把IP和域名都列进去本地测试就顺畅多了。4. 本地环境抓包HTTPS原理与实操4.1 抓包工具如何骗过客户端要真正理解HTTPS抓包得先明白抓包工具的工作机制。Wireshark这类纯协议分析工具其实很难直接解密HTTPS流量除非你配置了会话密钥导出因为流量是加密的。更常用的方案是本地代理抓包代表性工具有Charles、Fiddler这种原理是在客户端和服务器之间插入一个中间人代理。中间人代理的流程是这样的客户端把代理工具当成HTTPS服务器代理工具再去和真正的服务器建立连接。代理工具和服务器之间的连接是正常HTTPS代理工具发给客户端的是一个自己动态生成的证书而这个证书恰好被客户端信任。这样一来代理工具就能解密客户端发来的请求也能看到服务器的响应。这就是经典的中间人机制但它必须基于一个前提客户端必须信任代理工具的根证书。所以很多人遇到的第一道坎是装证书。在PC上抓包你要在系统或浏览器的信任列表里导入抓包工具的根证书。在手机上抓包你要把代理工具生成的CA证书安装到手机系统信任区域。Android 7以上系统默认不信任用户安装的证书某些App还会开启证书固定校验这两个问题叠加在一起让移动端抓包成了不少人的噩梦。这一点我放到后面详细拆解。4.2 实操在本地代理中配置抓包环境以我日常用的抓包工具为例整个流程可以概括为三步启动代理、配置终端设备走代理、安装并信任根证书。第一步启动代理工具后确认代理的服务端口。不同的工具默认端口不一样但通常可以在代理设置里自定义。监听端口确定后电脑本机的代理地址是127.0.0.1加端口号。Windows系统在系统的代理设置里填一下macOS在系统偏好设置的网络代理里配置浏览器就会自动走代理了。第二步配置手机走代理。手机和电脑需要在同一个局域网手机WiFi设置里开启手动代理填上电脑的局域网IP和代理端口。注意一定要用局域网IP假如你确实填了127.0.0.1那手机访问的是它自己的回环地址等于没代理。第三步安装根证书。电脑端一般会自动弹出证书安装提示或者打开特定网址下载证书。安装之后关键是确认证书被放到了受信任的根证书颁发机构里不是只安装到当前用户就完事了。移动端流程更繁琐从代理工具导出CA证书后传到手机安装Android还要区分是普通用户证书还是系统证书。用户证书安装简单但很多App不信任系统证书需要root权限一般测试机才考虑。配置好之后打开抓包工具里的SSL Proxying开关设置好要解密的域名范围然后访问一个HTTPS网站看看流量是不是已经解密成了可读的请求和响应。我习惯先把代理工具和浏览器的缓存都清一遍避免看到的是旧数据。4.3 移动端HTTPS抓包的特殊之处移动端抓包的水比PC深得多原因有两个App不走系统代理、App做证书校验。先说前者。很多App为了安全和性能底层网络库不读系统代理设置。解决思路是把代理做到网络层常见方案是在电脑上开一个透明代理或热点共享让手机流量经过电脑再转发。这种场景下代理工具接收到的流量不是显式发往代理端口的而是普通的443流量配置起来比单纯改WiFi代理要复杂一些。再说证书校验。有些App在代码里固定了服务器的证书指纹甚至把公钥直接写在代码里中间人代理拿出的动态根证书即使被系统信任也无法通过App自己的校验。这是因为抓包工具签发的证书和被固定的证书不是同一个所以校验失败。这里要特别提醒一句抓包和修改流量只应该在你拥有或获得授权的系统上进行。如果是排查自己开发的App、测试自己负责的服务没有任何问题如果有朋友让你帮忙测试某个系统先确认是否拿到书面授权。这个边界一定要守住测试环境怎么做都行生产环境没授权千万别乱碰。绕开证书校验的常见做法是Hook技术比如在调试环境里通过注入代码绕过校验逻辑但这类手段只适用于自己掌握源码或明确授权的测试目标。很多大厂会有专门的红队做安全评估也是基于授权前提的。5. 抓包后的修改与重放从观察到操作5.1 修改请求参数的场景与思路抓包不只是为了看数据很多时候还需要修改数据再发出去。我归纳了三个典型场景。第一个是前后端联调时的Mock场景。后端接口还没写好前端先用抓包工具的断点功能把响应改成约定好的格式界面开发不阻塞。第二个是接口测试场景需要验证参数边界。比如一个金额字段前端页面限制只能输入0到10000但真实的接口校验是否也做了同样限制这时候通过抓包工具把金额改成负数、改成超大值、改成小数快速验证后端校验逻辑是否完善。第三个是定位线上问题。用户反馈某个页面数据异常但正常操作复现不出来。抓包工具里把响应数据一改前端页面的展示逻辑就全部暴露出来了问题定位很快。修改请求参数的操作思路很直接抓包工具里找到目标请求开启断点或者使用Rewrite功能在请求发出去之前修改Header、Query参数或Body内容然后放行。有些工具还支持正则匹配和批量替换比如把测试环境域名下的请求头全部加一个测试标识字段。这种修改能力让我在日常接口调试里省了非常多时间不用反复提交表单直接在代理层改一次就能测多种情况。5.2 重放攻击在测试中的边界重放就是把之前捕获的请求原样或修改后再发一次。这在接口测试里非常常用尤其是在验证幂等性、防重放机制是否生效时。举个例子一个下单接口如果生成订单号后没有做幂等校验同样的请求发两次系统可能就创建了两笔订单。通过抓包工具捕获下单请求然后原样重放观察系统的行为就能判断接口在幂等性上是否达标。正常的测试流程会准备独立的测试账号和测试环境避免影响到真实数据。但要特别警惕重放的使用范围。处理支付、转账、登录等敏感操作的接口在生产环境重放是非常危险的行为稍有不慎就是资金损失或用户数据污染。我自己做这类测试时一定先在预发布环境验证确认接口逻辑符合预期才会考虑在受控环境中进一步操作。这个边界既是对别人负责也是对自己负责。合规永远排在技术能力前面。5.3 用脚本实现自动化修改图形化工具适合单次操作一旦涉及批量请求修改、动态计算签名或者自动化回归脚本的效率就体现出来了。这里我分享一个用Python做简单HTTPS拦截修改的思路仅用于本地测试环境。思路是写一个本地HTTP代理接收客户端请求打印请求内容然后转发给目标服务器再把响应内容打印出来。如果需要在请求发出前修改内容直接在转发前改动请求体即可。用Python内置的http.server和urllib就能实现一个最小版本import http.server import urllib.request TARGET_HOST api.test.local class ProxyHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): # 接收客户端的GET请求转发到目标服务 url fhttps://{TARGET_HOST}{self.path} req urllib.request.Request(url, headersdict(self.headers)) resp urllib.request.urlopen(req) # 打印响应内容用于观察 body resp.read() print(Response body:, body.decode(utf-8, ignore)) self.send_response(200) self.end_headers() self.wfile.write(body) def do_POST(self): # 接收客户端的POST请求先读取请求体再决定是否修改 length int(self.headers.get(Content-Length, 0)) body self.rfile.read(length) print(Original request body:, body.decode(utf-8, ignore)) # 这里可以修改body模拟参数篡改 modified_body body.replace(bamount100, bamount-1) url fhttps://{TARGET_HOST}{self.path} req urllib.request.Request(url, datamodified_body, headersdict(self.headers), methodPOST) resp urllib.request.urlopen(req) resp_body resp.read() print(Response:, resp_body.decode(utf-8, ignore)) self.send_response(200) self.end_headers() self.wfile.write(resp_body) if __name__ __main__: server http.server.HTTPServer((127.0.0.1, 8888), ProxyHandler) print(Proxy listening on 127.0.0.1:8888) server.serve_forever()这个示例没有处理HTTPS解密因为它默认接收的是客户端传过来的明文。实际配合抓包工具使用时可以让抓包工具先解密HTTPS流量再转发到这个本地脚本脚本负责改包和打日志。这样组合起来既免去了自己实现TLS的复杂度又能获得灵活的修改能力。脚本式修改最大的价值不在于复杂逻辑而在于可重复、可记录、可回归。我经常把线上问题的复现步骤写成脚本修完Bug后再跑一遍同样脚本确认现象消失比手工点界面可靠得多。6. 常见问题排查与避坑实录6.1 抓不到包、证书报错等典型问题汇总一下我实践过程中高频遇到的一批问题每个都有具体的排查思路直接放出速查表。问题现象可能原因排查思路电脑浏览器能上网但抓不到HTTPS流量代理未开SSL解密开关证书未信任确认SSL Proxying开启检查证书是否在受信任根列表手机能上网但App流量抓不到App不走系统代理使用了透明加密通道改用网络层代理方案检查App网络库特性访问目标站点时报证书错误代理证书未被客户端信任目标站点做了证书固定检查系统信任区域确认是否开启证书固定绕过方案HTTPS能访问但看不到明文内容域名未加入解密范围在代理工具的SSL配置里加入目标域名抓包停止后浏览器打不开HTTPS页面系统代理未恢复证书信任残留关闭系统代理确认代理工具退出后自动还原抓到请求了但响应乱码响应体被压缩如gzip或br在代理工具中禁用压缩或解压后查看这些问题里最常见的其实是证书信任问题。Windows上装完证书后一定要在管理证书里确认证书确实出现在受信任的根证书颁发机构文件夹下而不是个人文件夹里。很多人点了安装但没注意证书存储位置结果怎么抓都是CONNECT隧道没有任何明文解密内容。另外还有一个容易忽略的问题代理工具本身要开着SSL解密功能。Wireshark抓包是对网卡流量做镜像能看到TCP握手但看不到解密后的内容代理类工具是在流量经过它时做解密两者机制完全不同。很多人把Wireshark和Charles混着用概念串了以后就特别容易绕进去。6.2 避坑清单与经验分享实践越深越觉得HTTPS本身不复杂复杂的是周边配套环境。我整理了几条最实用的经验。第一条测试环境和生产环境严格隔离。抓包工具里最好只用一套专属于测试环境的配置避免混杂生产环境的域名和凭据。因为代理工具能解密流量就意味着所有经过它的数据对工具来说都是透明的。如果环境混用一旦代理配置泄露后果不堪设想。第二条抓包时不要只关注请求和响应内容还要关注时间线。一次完整的HTTPS请求建立连接、TLS握手、发送请求、接收响应各个阶段都消耗时间。有些接口慢不是业务代码慢而是TLS握手慢。用抓包工具的时间轴明确看到TCP三次握手和TLS握手各自消耗的时间排查方向的准确性能提升一大截。第三条不要忽略HTTP/2和HTTP/3的差异。现在的浏览器和服务端逐渐普及HTTP/2它的多路复用和二进制分帧在抓包工具里看起来和传统HTTP/1.1完全不同。检查请求时如果看到很多priority和stream相关字段不要误认为是异常流量。HTTP/3走UDP加QUIC普通代理工具根本拦不到需要专门的TO代理方案。这也是为什么有些站点用PC抓包能看到流量但切到HTTP/3之后流量就消失了。第四条证书过期的问题。服务器证书有效期越来越短很多商业CA已经把证书有效期限制在一年内。证书过期的表现不只是连接报错有些老客户端对证书过期的处理方式是静默降级或中断连接。遇到某个服务突然连接不上检查证书有效期永远是最快的排障动作之一。最后再分享一个我自己的小习惯。每学完一块协议知识我都会用抓包工具实际观察一遍把书本里的流程和真实流量对应上。特别是TLS握手过程第一次用Wireshark看到完整的ClientHello到Application Data的全过程时之前记不住的那些状态名和消息名称瞬间就有了画面感。纸上得来终觉浅属于这句老话的网络技术版本。协议栈的知识最终还是要落到一个实际请求、一条报错记录、一次抓包会话上这是我最深的体会。

相关新闻

动物运动会系统:5大设计模式实战教学

动物运动会系统:5大设计模式实战教学

简介:本资源是一套基于Java实现的《动物运动会》综合教学系统,面向软件工程专业学生、设计模式初学者及Java进阶开发者,旨在通过真实业务场景深度理解并实践31种经典设计模式。系统以动物参赛、大厅交互、赛事执行等完整流程为载体&#xff0…

2026/10/14 13:08:06 阅读更多 →
一文搞懂视觉语言动作模型VLA原理

一文搞懂视觉语言动作模型VLA原理

DeepSeek、ChatGPT 这些大语言模型不仅能检索信息,还能对话、写作、推理,甚至在一定程度上理解人的意图。但是如果把大模型放到机器人身上,新的问题就来了:它要怎么从“会说话”变成“会干活”?比如你对机器人说&#…

2026/10/14 13:07:05 阅读更多 →
Hadoop权限管理实战:从Kerberos认证到Ranger集中授权的完整指南

Hadoop权限管理实战:从Kerberos认证到Ranger集中授权的完整指南

1. 从一次“误删生产库”事故说起:Hadoop权限到底管什么几年前我接手过一个集群运维的活儿,刚上手第二周就出了事:一个数据分析同事用自己账号跑了个脚本,把生产环境某个目录下的数据全清了。事后复盘发现,集群当时用的…

2026/10/14 13:07:05 阅读更多 →

最新新闻

firebase-ios-sdk 接入实战:模块化依赖、核心功能与避坑指南

firebase-ios-sdk 接入实战:模块化依赖、核心功能与避坑指南

1. 项目概述与核心价值定位1.1 这个 SDK 到底解决什么问题firebase-ios-sdk 是 Google 官方维护的一套面向 Apple 平台的原生开发工具包,覆盖 iOS、macOS、tvOS 以及 watchOS。它的核心价值在于把后端基础设施的复杂度封装成客户端可直接调用的 API,让开…

2026/10/14 14:44:00 阅读更多 →
发票识别准确率上不去?UiPath 文档理解的四步骨架与抽取器选型实战

发票识别准确率上不去?UiPath 文档理解的四步骨架与抽取器选型实战

本文由 VISBAT 维思贝特整理,转载请注明出处。更多发票与单据抽取的工程细节与 FAQ,参见文末官网原文。单据处理往往是 RPA 项目最先卡住的地方。很多企业一开始信心满满:不就是读个发票吗?真做起来才发现,难点从来不在…

2026/10/14 14:44:00 阅读更多 →
我们正从规模化时代迈向研究时代:破除预训练幻象与通用泛化困境——读Ilya Sutskever重磅专访全景解析

我们正从规模化时代迈向研究时代:破除预训练幻象与通用泛化困境——读Ilya Sutskever重磅专访全景解析

📌 Dwarkesh Podcast 深度思想对谈 从规模化到研究时代 SSI 安全超级智能战略 主讲人:Ilya Sutskever (Safe Superintelligence Inc. 联合创始人、前 OpenAI 首席科学家) 主持人:Dwarkesh Patel 时长:90分钟核心第一性原理&am…

2026/10/14 14:43:59 阅读更多 →
Stable Diffusion核心原理:CLIP、扩散模型与UNet全解析

Stable Diffusion核心原理:CLIP、扩散模型与UNet全解析

Stable Diffusion应该是最近两三年里对普通人冲击最大的AI模型之一。输入一行文字,二三十秒后出来一幅完整度相当高的图像,放在三年前想都不敢想。但大多数人其实只接触过WebUI或者ComfyUI这种封装好的界面,点几个按钮就能出图,真…

2026/10/14 14:43:59 阅读更多 →
React Native定位实战:relative与absolute的坐标系逻辑与避坑指南

React Native定位实战:relative与absolute的坐标系逻辑与避坑指南

1. 从一个“按钮飘了”的Bug说起:为什么position值得单独拎出来讲刚接触React Native那会儿,我遇到过一个至今印象深刻的布局问题:一个本该固定在屏幕右下角的悬浮按钮,在Android上跑得好好的,到了iOS上却莫名其妙跑到…

2026/10/14 14:43:59 阅读更多 →
Qwen-Image-2.1本地部署三大硬约束解析

Qwen-Image-2.1本地部署三大硬约束解析

1. 这不是又一个“跑通就行”的Qwen-Image部署帖——它解决的是本地图像编辑里最硌人的三块硬骨头你肯定见过这类标题:“ComfyUI Qwen-Image 2.1 保姆级教程”,点进去,一行命令、两个插件、三张截图,最后配个“已成功运行”的图。…

2026/10/14 14:42:59 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →