OpenSSL命令行实战指南:从安装到证书管理与网络诊断
1. 从“不是内部或外部命令”说起为什么你需要了解OpenSSL命令行如果你在Windows的CMD里敲下openssl version然后系统告诉你“openssl 不是内部或外部命令也不是可运行的程序或批处理文件”这可能是你第一次与这个强大的工具“失之交臂”。这个错误提示背后其实是一个关于环境变量和工具集成的经典问题但今天我们聊的远不止于此。OpenSSL这个几乎无处不在的密码学工具库它的命令行工具是每一位开发者、运维工程师乃至安全爱好者都应该掌握的“瑞士军刀”。无论是检查一个HTTPS网站的证书链是否完整还是为自己开发的内部服务快速生成一套自签名证书进行测试甚至是进行一些基础的加密解密操作OpenSSL命令行都能让你在终端里快速搞定而无需依赖复杂的图形界面工具或编写额外的脚本。很多人对OpenSSL的印象停留在“一个用来生成SSL证书的库”这大大低估了它的能力。它的命令行接口openssl是一个功能庞杂的工具箱涵盖了对称加密、非对称加密、信息摘要、证书管理、SSL/TLS测试等数十个子命令。对于后端开发者理解如何用openssl s_client调试TLS连接问题能让你在排查“服务间调用突然失败”时多一个强有力的抓手。对于运维人员用openssl req和openssl x509管理证书的生命周期生成、查看、转换格式、验证是日常必备技能。即便你只是偶尔需要验证一下下载文件的完整性比如对比SHA256校验和openssl dgst也比去找一个专门的校验工具要来得直接。网络上关于OpenSSL的搜索热词如“openssl安装教程”、“openssl升级”、“openssl安装步骤windows”恰恰说明了大量用户正卡在“入门”的第一步。而“掉进grub命令行”、“ensp清空命令行窗口”这类看似无关的词条也反映了在命令行环境下工作的普遍性和可能遇到的困惑。本文的目的就是帮你跨过最初的门槛通过一系列具体的、常见的场景让你能快速上手OpenSSL命令行理解其核心子命令的用法并能在实际工作中灵活运用。我们会从最基础的安装验证开始逐步深入到证书操作、连接测试和加解密等实用场景过程中会穿插我多年来使用它时积累的一些“坑点”和技巧。2. 环境准备与第一行命令验证安装与基本结构在开始任何操作之前我们得先确保openssl命令在你的系统上可用。对于Linux和macOS用户系统通常已经预装了OpenSSL你可以直接打开终端。对于Windows用户情况稍微复杂一些这也是“openssl 不是内部或外部命令”这个问题高发的根源。2.1 解决Windows下的安装与路径问题Windows系统默认不包含OpenSSL。你有几个选择一是从OpenSSL官网下载编译好的二进制包注意选择与你系统位数匹配的版本如Win64二是通过包管理器如chocoChocolatey安装命令如choco install openssl三是一些集成环境如Git for Windows的Git Bash或WSLWindows Subsystem for Linux里可能自带。无论哪种方式安装后的关键一步是将openssl.exe所在的目录添加到系统的PATH环境变量中。这是让命令行识别openssl命令的唯一方法。以官网下载为例假设你解压到了C:\OpenSSL-Win64\bin那么就需要将这个路径添加到PATH。添加后务必重新启动你的命令行窗口CMD或PowerShell使新的PATH生效。之后再运行openssl version你应该能看到类似OpenSSL 3.0.7 1 Nov 2022的输出这标志着安装成功。注意网上有些教程会提到“mingw版本的openssl下载”或“win64 openssl light”。这些通常是特定构建版本对于绝大多数通用场景建议直接使用OpenSSL官网或通过可靠包管理器提供的版本以避免兼容性问题。2.2 理解OpenSSL命令的基本语法安装成功后在命令行中输入openssl并回车你会进入一个交互式环境提示符会变成OpenSSL。在这个环境里你可以直接输入子命令如version,help。不过更常见的用法是在系统命令行中直接使用openssl命令的非交互模式其基本语法为openssl command [options] [arguments]其中command子命令指定要执行的操作例如req证书请求、x509证书处理、s_clientSSL/TLS客户端。[options]选项通常以短横线-开头用于修改命令行为例如-in指定输入文件-out指定输出文件-text以文本形式输出详细信息。[arguments]参数通常是文件名、字符串等具体操作对象。一个快速获取帮助的方法是使用openssl help查看所有支持的命令列表或者使用openssl command -help查看特定子命令的详细帮助。例如openssl req -help会列出与生成证书签名请求CSR相关的所有选项。2.3 第一个实用命令查看证书信息让我们用一个非常实用的场景来跑通第一个命令查看一个网站的SSL证书信息。这不需要任何文件直接连接远程服务器即可。openssl s_client -connect www.example.com:443 -servername www.example.com 2/dev/null | openssl x509 -noout -text这条命令做了两件事通过管道|连接openssl s_client -connect ...作为一个TLS客户端连接到www.example.com的443端口。-servername参数用于SNI服务器名称指示在现代TLS中非常重要。2/dev/null在Linux/macOS或2nul在Windows是为了过滤掉s_client输出的调试信息只保留证书数据。openssl x509 -noout -textx509是处理X.509证书的子命令。-noout表示不输出证书本身的编码内容-text表示以可读的文本格式打印证书的所有详细信息。执行后你会看到一长串输出包括证书的颁发者、使用者、有效期、公钥算法、签名算法、扩展信息如主题备用名称SAN等。这是排查证书问题比如证书是否过期、域名是否匹配最直接的方法。3. 证书操作全流程从生成到查看证书管理是OpenSSL命令行最核心的用途之一。无论是为内部开发环境创建自签名证书还是为正式服务生成证书签名请求CSR提交给证书颁发机构CA以下流程都是通用的。3.1 生成私钥私钥是证书安全的基础必须妥善保管。通常我们使用RSA算法并推荐使用至少2048位的密钥长度。使用genpkey推荐或旧的genrsa命令。openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048 -aes256-algorithm RSA指定算法为RSA。-out server.key输出私钥到server.key文件。-pkeyopt rsa_keygen_bits:2048指定密钥长度为2048位。-aes256用AES-256算法加密私钥文件。执行命令后会提示你输入并确认一个密码。强烈建议为私钥设置密码即使这会在自动化部署时带来一些麻烦可通过其他方式管理它能极大提高私钥泄露后的安全性。如果你确定不需要加密私钥例如用于某些自动化场景但需评估风险可以去掉-aes256参数。3.2 创建证书签名请求CSRCSR包含了你的公钥和主体信息如国家、组织、通用名等用于向CA申请证书。你需要使用上一步生成的私钥。openssl req -new -key server.key -out server.csr -subj /CCN/STBeijing/LBeijing/OMy Company/CNmyserver.example.com-new生成新的CSR。-key server.key指定私钥文件。-out server.csr输出CSR到server.csr文件。-subj “/CCN/...”以一行命令的形式指定主题信息避免交互式提问。其中CNCommon Name最为重要对于服务器证书这通常应该是服务器的域名如myserver.example.com。对于现代浏览器CN的作用已减弱更多依赖扩展字段Subject Alternative Name (SAN)我们稍后介绍。执行后如果私钥有密码会提示你输入。你可以用openssl req -in server.csr -noout -text命令查看CSR的详细信息确认主题和公钥是否正确。3.3 生成自签名证书用于测试在开发或测试环境我们常常需要快速创建一个自签名证书让服务能跑在HTTPS上。这相当于自己充当CA用自己的私钥为CSR签名。openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365-req表明输入是一个CSR。-in server.csr输入CSR文件。-signkey server.key使用这个私钥进行签名因为是自签名。-out server.crt输出证书到server.crt文件。-days 365设置证书有效期为365天。更简单的一步到位方法是在生成CSR时直接生成自签名证书或者使用req命令的-x509选项openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt -subj /CCN/STBeijing/LBeijing/OMy Company/CNlocalhost-newkey rsa:2048同时生成新的RSA私钥2048位。-nodes不加密私钥No DES即不加密。-keyout server.key输出私钥。-x509直接输出一个X.509证书而不是CSR。-out server.crt输出证书。3.4 为证书添加主题备用名称SAN现代浏览器和客户端严格要求服务器证书的SAN扩展字段中包含访问的域名仅靠CN字段已不够。生成包含SAN的CSR或证书需要额外步骤创建一个配置文件如san.cnf。[req] distinguished_name req_distinguished_name req_extensions v3_req prompt no [req_distinguished_name] C CN ST Beijing L Beijing O My Company CN myserver.example.com [v3_req] keyUsage keyEncipherment, dataEncipherment extendedKeyUsage serverAuth subjectAltName alt_names [alt_names] DNS.1 myserver.example.com DNS.2 www.example.com DNS.3 *.app.example.com IP.1 192.168.1.100然后在生成CSR或证书时引用这个配置文件openssl req -new -key server.key -out server.csr -config san.cnf对于自签名证书openssl req -new -x509 -key server.key -out server.crt -days 365 -config san.cnf这样生成的证书就包含了SAN扩展能兼容所有现代客户端。3.5 查看与验证证书生成证书后经常需要查看其内容或验证其有效性。查看证书详细信息openssl x509 -in server.crt -noout -text。这会输出所有字段重点关注Validity有效期、Subject/Issuer主体/颁发者、Subject Alternative Name以及Signature Algorithm签名算法应避免使用SHA1等弱算法。查看证书过期时间openssl x509 -in server.crt -noout -enddate。验证证书链需要CA证书openssl verify -CAfile ca.crt server.crt。如果server.crt是由ca.crt签发的这条命令会返回server.crt: OK。转换证书格式不同的系统可能需要不同格式的证书如PEM, DER, PKCS#12。PEMBase64编码文本以-----BEGIN CERTIFICATE-----开头是最常见的。openssl x509 -in certificate.der -inform DER -out certificate.pem -outform PEM可以将DER格式转换为PEM格式。4. 网络诊断与安全测试s_client与s_serverOpenSSL的s_client和s_server是两个极其强大的网络诊断工具可以模拟TLS客户端和服务器用于测试连接、检查协议和加密套件支持情况是排查HTTPS相关问题不可或缺的手段。4.1 使用s_client进行深度连接测试s_client不仅仅能获取证书。通过添加各种参数我们可以进行深入的诊断。测试特定TLS版本检查服务器是否支持TLS 1.2或TLS 1.3。openssl s_client -connect www.example.com:443 -tls1_2 openssl s_client -connect www.example.com:443 -tls1_3如果连接失败可能意味着服务器不支持该版本协议。测试特定加密套件检查服务器是否支持或优先使用某个特定的加密套件。openssl s_client -connect www.example.com:443 -cipher ECDHE-RSA-AES128-GCM-SHA256显示详细的握手过程-msg或-debug参数可以输出握手过程中的所有消息对于理解TLS握手流程和定位握手失败原因非常有帮助。openssl s_client -connect www.example.com:443 -msg忽略证书验证在测试自签名证书或内部CA签发的证书时可以使用-verify_return_error更严谨或旧版的-verify 0来忽略证书验证错误仅测试协议层面的连通性。openssl s_client -connect internal-server:443 -verify_return_error 0发送HTTP请求连接建立后你可以直接在交互界面输入HTTP请求。例如连接后输入GET / HTTP/1.1然后按两下回车可以看到服务器返回的HTTP响应头可能看不到正文因为连接可能被关闭或需要更多头部信息。4.2 使用s_server创建临时测试服务器s_server可以快速启动一个简单的HTTPS服务器用于客户端测试或开发调试。openssl s_server -accept 8443 -cert server.crt -key server.key -www-accept 8443在8443端口监听。-cert和-key指定服务器证书和私钥。-www模拟一个简单的Web服务器会在接收到连接时发送一个状态页面。启动后你可以用浏览器访问https://localhost:8443需要信任你的自签名证书或者用另一个终端的s_client进行连接测试openssl s_client -connect localhost:8443。这对于测试客户端代码的TLS配置、验证证书链是否正确非常方便。4.3 实战排查案例TLS版本不匹配假设你的应用无法连接到某个API服务端。错误日志显示“握手失败”。你可以先用s_client进行基础测试openssl s_client -connect api.target.com:443如果连接成功并打印出证书信息说明网络和端口是通的。如果失败可以尝试指定低版本协议openssl s_client -connect api.target.com:443 -tls1_2如果-tls1_2成功而默认可能尝试TLS1.3失败那很可能是服务端不支持TLS 1.3而你的客户端默认配置或库版本优先尝试TLS 1.3导致了失败。这时你就需要调整客户端应用的TLS配置明确指定支持的协议版本。这个简单的测试能快速将问题定位到协议层面避免在应用代码里盲目排查。5. 摘要、加密与编解码日常实用工具箱除了证书和TLSOpenSSL命令行还提供了许多处理数据的小工具在日常工作中能派上大用场。5.1 计算文件摘要哈希计算文件的SHA256、MD5等哈希值用于验证文件完整性。openssl dgst -sha256 myfile.zip这会输出SHA256(myfile.zip) xxxxx...。你也可以使用-r参数输出BSD风格的格式只有哈希值便于与其他工具如sha256sum的结果进行比较。openssl dgst -sha256 -r myfile.zip虽然MD5和SHA1因其碰撞漏洞已不适用于安全场景但在一些非安全的校验场景如检查文件是否被意外修改仍有使用。OpenSSL支持-md5,-sha1,-sha256,-sha512等多种算法。5.2 对称加密与解密OpenSSL可以方便地进行文件的对称加密解密。例如使用AES-256-CBC算法加密一个文件openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.dat执行后会提示你输入加密密码。参数说明enc对称加密子命令。-aes-256-cbc指定加密算法和模式。-salt使用盐值增加安全性。-in/-out输入输出文件。解密时使用-d参数openssl enc -aes-256-cbc -d -salt -in encrypted.dat -out decrypted.txt同样会提示输入密码。务必牢记密码丢失密码将无法解密数据。5.3 Base64编码与解码Base64编码常用于在文本协议如HTTP、电子邮件中安全地传输二进制数据。OpenSSL可以轻松处理。编码openssl base64 -in binary.data -out encoded.txt解码openssl base64 -d -in encoded.txt -out binary.data也可以使用-e和-d参数与enc命令类似。这是一个快速查看或处理PEM格式证书本质上是Base64编码内容的基础操作。5.4 生成随机数生成指定字节数的随机数据可用于创建密钥、盐值等。openssl rand -hex 32这会生成一个64个字符的十六进制字符串32字节。-base64参数可以输出Base64编码的随机数。rand命令生成的随机数质量很高适用于密码学用途。5.5 一个综合案例验证软件发布包假设你从某开源项目官网下载了一个软件包app-v1.0.tar.gz和一个对应的签名文件app-v1.0.tar.gz.sha256。验证步骤如下使用OpenSSL计算下载包的SHA256值openssl dgst -sha256 -r app-v1.0.tar.gz输出类似e3b0c442... app-v1.0.tar.gz查看官网提供的签名文件内容cat app-v1.0.tar.gz.sha256应该也是一行类似的哈希值。对比两个字符串是否完全一致。如果一致说明文件在传输过程中未被篡改。掌握这些“小工具”能让很多日常任务在命令行中高效完成减少对特定图形化工具的依赖。6. 进阶技巧与常见“坑点”在熟练使用基本命令后了解一些进阶技巧和常见问题能让你事半功倍并避免掉入陷阱。6.1 处理PKCS#12文件.p12/.pfxPKCS#12格式文件通常包含证书、私钥以及可能的CA证书链常用于Windows服务器或Java Keystore。你可以从PEM文件创建它openssl pkcs12 -export -out bundle.p12 -inkey server.key -in server.crt -certfile ca.crt-export执行导出操作。-inkey输入私钥。-in输入用户证书。-certfile输入额外的CA证书可选。执行后会提示你设置导出密码用于保护.p12文件。从PKCS#12文件中提取内容# 提取私钥 (会提示输入.p12文件的密码和设置新私钥密码) openssl pkcs12 -in bundle.p12 -nocerts -out extracted.key # 提取证书 openssl pkcs12 -in bundle.p12 -nokeys -out extracted.crt # 提取CA证书链 openssl pkcs12 -in bundle.p12 -cacerts -nokeys -out ca-chain.crt6.2 密钥格式转换不同的系统或工具可能需要不同格式的私钥。OpenSSL可以方便地进行转换。从加密的PEM私钥移除密码谨慎操作仅用于自动化部署等特定场景openssl rsa -in encrypted.key -out decrypted.key将传统PEM私钥转换为PKCS#8格式某些新工具要求openssl pkcs8 -topk8 -in traditional.key -out pkcs8.key -nocrypt-nocrypt表示输出的PKCS#8密钥不加密。如果需要加密可以去掉此参数。6.3 排查“不受支持的命令行标记”类错误有时你会遇到类似“你使用的是不受支持的命令行标记”的错误。这通常与OpenSSL无关而是你正在使用的其他命令行工具如Chrome、某些Java应用的参数问题。但OpenSSL命令本身也可能因为版本不同导致参数差异。务必养成查看帮助文档的习惯。使用openssl command -help或man openssl-command在Linux/macOS来确认你当前版本支持的确切参数名。例如早期版本可能用-days 365而某些上下文可能需要-days 365。当从网络复制命令时要留意其对应的OpenSSL版本。6.4 性能与输出控制当处理大型文件如计算大文件的哈希时OpenSSL命令会消耗一定CPU和内存但通常效率很高。使用2/dev/nullUnix-like或2nulWindows来重定向标准错误输出可以过滤掉不必要的警告或调试信息让输出更干净如前文查看证书的例子。对于s_client如果想在建立连接后立即退出而不是进入交互模式可以添加-brief参数或者使用-quiet减少输出再结合/dev/null来立即关闭输入。6.5 我的个人经验关于证书链的完整性在实际运维中我遇到最多的证书问题不是证书本身错误而是证书链不完整。很多中间CA证书需要被正确部署。使用s_client测试时如果输出中包含“Verify return code: 20 (unable to get local issuer certificate)”这通常意味着客户端无法找到签发服务器证书的中间CA证书。解决方法是将所有中间CA证书有时还包括根证书合并到一个文件如ca-bundle.crt并在Web服务器如Nginx配置中通过ssl_trusted_certificate指令指定它或者在客户端验证时通过-CAfile参数指定。你可以用cat intermediate1.crt intermediate2.crt ca-bundle.crt来合并证书顺序一般为从子级到根级。

相关新闻

告别手忙脚乱:蚂蚁森林自动收能量脚本,一招帮你每天多睡十分钟

告别手忙脚乱:蚂蚁森林自动收能量脚本,一招帮你每天多睡十分钟

告别手忙脚乱:蚂蚁森林自动收能量脚本,一招帮你每天多睡十分钟 【免费下载链接】alipay_autojs 最最最简单的蚂蚁森林自动收能量脚本 项目地址: https://gitcode.com/gh_mirrors/al/alipay_autojs 早上七点,闹钟响了。小林迷迷糊糊摸到…

2026/10/20 18:58:01 阅读更多 →
【计算机毕业设计单片机案例】基于 51/STM32 单片机的人机交互型水环境监测报警系统实现 基于 51/STM32 单片机的自动手动切换水质监控装置设计(018103)

【计算机毕业设计单片机案例】基于 51/STM32 单片机的人机交互型水环境监测报警系统实现 基于 51/STM32 单片机的自动手动切换水质监控装置设计(018103)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/17 9:03:11 阅读更多 →
免费iOS激活锁绕过完整指南:applera1n十分钟解锁iPhone 6s至iPhone X

免费iOS激活锁绕过完整指南:applera1n十分钟解锁iPhone 6s至iPhone X

免费iOS激活锁绕过完整指南:applera1n十分钟解锁iPhone 6s至iPhone X 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 如果你手上有一台被Apple ID锁死的旧iPhone,既不想花钱找商…

2026/10/19 17:20:40 阅读更多 →

最新新闻

TradingView 2024信号导出:Pine Script v5结构化推送与Python实盘对接

TradingView 2024信号导出:Pine Script v5结构化推送与Python实盘对接

简介:本资源为TradingView 2024前端静态资源镜像包,面向Web前端开发者、量化交易工具二次开发者及UI定制需求者,用于快速搭建或离线调试TradingView图表库核心界面与交互逻辑。压缩包共1997个文件,主体为1758个JS脚本(…

2026/10/20 23:04:18 阅读更多 →
Flink实时数仓全链路架构:从采集到存储的工程实践

Flink实时数仓全链路架构:从采集到存储的工程实践

1. 为什么“实时数仓”不是加个“实时”两个字就完事了?Flink实时数仓数据采集流程和技术架构——这个标题里藏着一个行业里心照不宣的真相:绝大多数团队在喊“建实时数仓”时,其实连“实时”的边界在哪都没想清楚。我见过太多项目&#xff0…

2026/10/20 23:04:18 阅读更多 →
Vue实战开发经验总结:从项目搭建到性能优化的全套思路

Vue实战开发经验总结:从项目搭建到性能优化的全套思路

做了几年Vue网站开发,从最初拿官方文档当小说啃,到后来在真实项目里被各种边界情况毒打,积累了不少心得。这篇文章不是官方文档的复述,而是我在实际项目中总结出的整套Vue开发思路:从为什么选Vue、项目怎么搭才顺手、组…

2026/10/20 23:04:18 阅读更多 →
AI学习无非四个方向:答疑、练习、规划、整理,把AI教练用起来

AI学习无非四个方向:答疑、练习、规划、整理,把AI教练用起来

“用AI帮学习,无非四个方向。”这句话我常挂在嘴边。这几年陆续帮不少人调试过AI学习流程,发现大家一听到“AI学习”就想到写作业神器、答案生成器,或者反过来觉得AI只是个会聊天的玩具。其实两种看法都跑偏了。你翻遍各种教程、各种工具、各…

2026/10/20 23:04:18 阅读更多 →
用代码生成PPT:三层架构实现自动化排版与批量生成

用代码生成PPT:三层架构实现自动化排版与批量生成

1. 从零搭建一个"PPT大师":为什么我要自己造这个轮子做技术分享、写项目复盘、给团队做培训,绕不开的一件事就是做PPT。我算了一下,过去一年我大概做了四十多份演示文稿,平均每份二十页起步。最开始我用的就是最朴素的办…

2026/10/20 23:04:18 阅读更多 →
PPT自动化生成实战:基于python-pptx的模板化批量处理与图表动态更新

PPT自动化生成实战:基于python-pptx的模板化批量处理与图表动态更新

1. 项目缘起与核心定位第一次看到“ppt-master”这个命名,我的直觉是:这大概率是一个围绕演示文稿自动化生成或批量处理的工具型项目。在办公自动化领域摸爬滚打这些年,我见过太多团队在PPT上耗费大量重复劳动——每周例会要更新数据图表、每…

2026/10/20 23:03:14 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →