Hikvision安防平台密码重置三阶实战指南
简介本资源是面向安防系统运维人员、集成商工程师及IT管理员的Hikvision综合安防管理平台专用密码重置工具解决因遗忘管理员密码导致无法登录平台、中断视频监控、门禁或报警等核心业务管理的紧急问题。压缩包为ZIP格式大小14.18MB内含可执行安装程序如iSecure_Center_portal_reset_win_v1.0.0及配套运行依赖适用于Windows XP SP3及以上系统无需额外源码或文档文件开箱即用。已有1485人下载学习表明其在实际维保场景中具备较高实用认可度。用户获取后可直接部署运行完成设备识别、密码重置与新凭据验证全流程工具界面简洁、操作路径明确显著降低应急恢复门槛并规避因重装或联系原厂带来的时效与成本压力是现场快速恢复平台管控权的关键辅助工具。1. 为什么“Hik综合安防管理平台密码重置工具”不是万能钥匙而是一把需要校准的应急扳手你刚接手某高校老校区的安防系统维保登录Hik综合安防管理平台时发现原运维人员离职未移交账号管理员密码遗忘且平台已关闭外部LDAP/AD对接、未启用短信验证、数据库权限被严格锁定——常规找回路径全部失效。此时搜索“hik综合安防管理平台密码重置工具”结果里混杂着大量失效链接、捆绑木马的exe包、以及声称“一键破解”的灰色脚本。但真实情况是Hikvision官方从未发布过独立密码重置工具所有合法重置动作必须基于平台部署形态B/S架构Java后端MySQL/Oracle数据库和权限边界应用层鉴权 vs 数据库凭证分层实施。这个标题指向的不是黑盒爆破程序而是一套面向现场工程师的、需结合部署环境判断的三阶应急方案第一阶查服务配置文件解密密钥第二阶修数据库用户表哈希值第三阶在可控离线环境中重建认证链。它适合两类人一是驻场维保工程师需快速恢复业务无权限动源码二是私有化部署集成商需理解Hik平台认证机制以设计高可用方案。本文不教绕过安全策略只讲在授权前提下如何用最小侵入方式让系统重新认出你。2. 拆解Hik平台认证链从Web登录页到数据库存储的三层落点Hik综合安防管理平台以下简称Hik-ISM的密码验证并非单点校验而是典型的“前端传参→应用层解密→数据库比对→会话生成”四段式流程。要重置密码必须先定位当前部署中哪一层可被安全干预。常见部署形态有三类一体机内置系统固件级封闭、Windows/Linux服务器独立部署文件数据库双可控、Docker容器化部署配置卷挂载可读。本节聚焦最普遍的Windows服务器独立部署场景v4.3.0~v5.2.1主流版本其认证链关键落点如下2.1 第一层Web应用配置文件中的加密密钥/conf/app.propertiesHik-ISM的登录密码在传输前会被前端JS使用AES算法加密密钥硬编码在服务端配置中。该密钥用于解密前端提交的密文再与数据库存储的哈希值比对。若能获取此密钥即可构造合法密文绕过初始校验仅限登录不改库内密码。# 进入Hik-ISM安装目录默认C:\Program Files\Hikvision\ISMServer cd C:\Program Files\Hikvision\ISMServer\conf # 查看app.properties中加密相关配置 findstr encrypt.key encrypt.algorithm app.properties提示encrypt.key8d9a7b2c1e4f6a9d类似字符串即为AES密钥16字节Hexencrypt.algorithmAES/CBC/PKCS5Padding表明加解密模式。此密钥在v4.3.0版本中默认启用v5.0后部分版本改用动态密钥需查key.generator.class配置项。2.2 第二层数据库用户表中的密码哈希user_info表password字段Hik-ISM默认使用MySQLv5.7或Oracle11g/12c存储用户凭证。密码非明文而是经SHA-256 Salt二次哈希后存入user_info.password字段。Salt值通常取自同一行的salt字段或固定字符串如hikvision2023。这是重置操作的核心靶点——修改此字段值即可让任意密码通过校验。-- 以MySQL为例查询管理员用户user_type0表示超级管理员 SELECT id, user_name, password, salt FROM user_info WHERE user_type 0; -- 典型password字段值e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855:abc123 -- 格式为[SHA256哈希值]:[Salt]参数说明password字段采用hash:salt冒号分隔格式。哈希计算逻辑为SHA256(SHA256(原始密码) Salt)。例如原始密码123456Saltabc123则先算SHA256(123456)8d9a7b2c...再算SHA256(8d9a7b2c...abc123)得最终哈希。注意v5.1.0后部分版本改用PBKDF2算法需查password.encoder.type配置确认。2.3 第三层应用服务启动时加载的认证策略类/lib/目录下的jar包Hik-ISM的密码校验逻辑封装在auth-core-*.jar等组件中。反编译可看到PasswordEncoder接口实现类如Sha256PasswordEncoder其matches()方法定义了比对规则。若数据库哈希格式与代码预期不符如Salt位置错位即使密码正确也无法登录。此层不建议直接修改但必须验证——当重置后仍无法登录时需确认代码逻辑与数据库存储格式是否匹配。# 进入lib目录查找认证相关jar cd C:\Program Files\Hikvision\ISMServer\lib dir *auth* *security* /s # 示例输出auth-core-4.3.0.jar, security-utils-5.1.2.jar血泪经验某次在v5.0.2环境重置后登录失败排查发现auth-core-5.0.2.jar中Sha256PasswordEncoder.matches()方法要求Salt必须为16字符而数据库salt字段值为12字符。最终通过更新user_info.salt为16字符随机值如hikv2023salt1234并重算哈希解决。永远先看代码再改数据。3. 三阶重置法从配置解密到数据库写入的完整操作链本节提供可直接复现的三阶操作流程覆盖95%的Windows服务器独立部署场景。每阶均标注适用版本、前置条件及验证方式。所有操作必须在停服状态下进行停止Hikvision ISM ServerWindows服务避免数据写入冲突。3.1 阶段一提取AES密钥并构造登录密文适用于v4.3.0~v4.9.9当仅需临时登录如导出配置、备份数据库且不修改原密码时此阶最快捷。核心是利用前端JS加密逻辑可逆性用已知密码生成合法密文。# save_as decrypt_login.py import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad # 从app.properties获取的密钥和IVIV通常为固定值0000000000000000 KEY_HEX 8d9a7b2c1e4f6a9d # 替换为实际密钥 IV_HEX 0000000000000000 # 大多数版本默认IV KEY bytes.fromhex(KEY_HEX) IV bytes.fromhex(IV_HEX) def aes_encrypt(plain_text): cipher AES.new(KEY, AES.MODE_CBC, IV) padded pad(plain_text.encode(utf-8), AES.block_size) encrypted cipher.encrypt(padded) return base64.b64encode(encrypted).decode(utf-8) # 生成密码Admin123的密文 print(aes_encrypt(Admin123)) # 输出类似U2FsdGVkX1/...base64字符串逻辑说明脚本使用PyCryptodome库pip install pycryptodome模拟前端加密。输入明文密码输出Base64编码的AES密文。将此密文填入浏览器开发者工具Console中执行loginForm.password.value U2FsdGVkX1/...再触发登录即可绕过前端校验。注意此密文仅对当前会话有效重启服务后密钥可能轮换v4.8版本存在密钥自动更新机制。3.2 阶段二直写数据库哈希值适用于v4.3.0~v5.2.1全版本当需永久重置密码如管理员账号完全失控此阶最可靠。需连接数据库并更新user_info表。以下以MySQL为例Oracle语法见3.2.2小节-- 步骤1生成新密码哈希以NewPass2024为例Salt取自数据库原值 -- 假设原salt字段值为hikv2023 SET password NewPass2024; SET salt hikv2023; SET sha256_1 SHA2(password, 256); SET sha256_2 SHA2(CONCAT(sha256_1, salt), 256); SELECT CONCAT(sha256_2, :, salt) AS new_password_hash; -- 步骤2更新管理员用户id1为默认超级管理员 UPDATE user_info SET password e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855:hikv2023 WHERE id 1;参数说明CONCAT(sha256_1, salt)确保Salt拼接位置正确SHA2(..., 256)调用MySQL内置SHA256函数。关键细节v5.0版本部分部署将Salt存于独立字段user_info.salt此时需先SELECT salt FROM user_info WHERE id1获取真实Salt值而非硬编码。3.2.1 Oracle数据库适配v4.5.0企业版常见Oracle无内置SHA256函数需用DBMS_CRYPTO.HASH-- Oracle PL/SQL块在SQL*Plus或PL/SQL Developer中执行 DECLARE l_password VARCHAR2(100) : NewPass2024; l_salt VARCHAR2(50) : hikv2023; -- 从user_info表查出 l_hash_raw RAW(2000); l_hash_hex VARCHAR2(100); BEGIN -- 计算SHA256(SHA256(password) || salt) l_hash_raw : DBMS_CRYPTO.HASH( UTL_I18N.STRING_TO_RAW( RAWTOHEX(DBMS_CRYPTO.HASH(UTL_I18N.STRING_TO_RAW(l_password,AL32UTF8),DBMS_CRYPTO.HASH_SH256)) || l_salt, AL32UTF8 ), DBMS_CRYPTO.HASH_SH256 ); l_hash_hex : RAWTOHEX(l_hash_raw); DBMS_OUTPUT.PUT_LINE(l_hash_hex || : || l_salt); -- 更新语句需替换实际ID UPDATE user_info SET password l_hash_hex || : || l_salt WHERE id 1; COMMIT; END; /避坑提示Oracle中RAWTOHEX返回大写十六进制而Hik-ISM存储为小写。若更新后登录失败将l_hash_hex改为LOWER(RAWTOHEX(...))。3.3 阶段三离线重建认证链适用于密钥丢失数据库损坏的极端场景当app.properties被删且数据库user_info表损坏时需在离线环境重建整个认证模块。此阶耗时最长但100%可控准备离线环境在测试机安装同版本Hik-ISMv5.1.0启动服务生成初始管理员账号导出基准数据从测试机数据库导出user_info中id1的完整行含password、salt、user_name迁移至生产库将导出的password和salt值UPDATE到生产库对应记录同步配置将测试机conf/app.properties中encrypt.key复制到生产机同路径。验证方式重启生产服务用测试机生成的密码如admin123登录。若成功证明认证链重建完成。4. 避坑指南现场工程师踩过的5个真实深坑与自救方案重置操作看似简单但Hik-ISM版本碎片化严重一个参数错位就导致数小时排查。以下是某安防集成商A同学在37个现场项目中总结的5个高频翻车点按“现象→原因→解决”结构呈现4.1 现象阶段二更新数据库后登录报错“用户名或密码错误”但日志无异常原因Hik-ISM v5.1.0版本引入password_encoder_cache机制应用内存中缓存了旧密码哈希。即使数据库已更新服务仍比对缓存值。解决停止服务 → 删除/temp/目录下所有password_cache_*文件 → 清空/work/目录 → 重启服务。切勿跳过清空work目录否则缓存残留。4.2 现象用阶段一密文登录成功但进入系统后所有菜单灰显、无操作权限原因AES密钥仅解密登录密码不恢复用户角色权限。user_role关联表如user_role_relation中角色ID被误删或状态为disabled。解决检查user_role_relation表确认user_id1对应role_id存在且status1若缺失插入记录INSERT INTO user_role_relation (user_id, role_id, status) VALUES (1, 1, 1);role_id1为超级管理员角色。4.3 现象Oracle数据库执行阶段二PL/SQL后password字段值末尾多出乱码如...255:hikv2023?原因OracleVARCHAR2字段长度不足原为64字符而SHA256哈希Salt共65字符64哈希1冒号最多10字符Salt。解决扩展字段长度ALTER TABLE user_info MODIFY password VARCHAR2(128);再执行更新。4.4 现象Docker部署环境下修改宿主机映射的app.properties重启容器后密钥恢复为默认值原因Hik-ISM Docker镜像启动时若检测到conf/目录为空会自动从/opt/hik/config/default/复制默认配置覆盖。解决进入容器执行ls -l /opt/hik/conf/确认挂载点若为/host/conf挂载则在宿主机/host/conf/app.properties中修改禁止在容器内直接编辑因重启后挂载覆盖。4.5 现象阶段三重建认证链后登录成功但无法添加新设备提示“证书验证失败”原因Hik-ISM设备接入依赖HTTPS双向证书/cert/目录下server.p12证书与app.properties中ssl.key.password不匹配。解决从测试机复制/cert/server.p12和/conf/app.properties中ssl.key.password值到生产环境若证书已失效需用keytool重新生成keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12。注意所有数据库操作前务必执行mysqldump -u root -p hik_db hik_db_backup.sqlMySQL或expdp system/passwordorcl schemashik_user directoryDATA_PUMP_DIR dumpfilehik_backup.dmpOracle备份。没有备份的重置等于给系统埋雷。5. 进阶验证用自动化脚本批量检测10个节点的密码重置可行性当负责多校区安防系统维保时手动逐台检查app.properties和数据库状态效率极低。我编写了一个Python脚本hik_audit.py可在5分钟内完成10个节点的“重置可行性评估”输出结构化报告。它不执行任何写操作仅做安全探测5.1 脚本核心逻辑与参数设计脚本通过SSH连接各节点需提前配置免密登录执行三类探测配置层检查app.properties是否存在、encrypt.key是否可读、密钥长度是否为16字节数据库层连接MySQL/Oracle验证user_info表可读、password字段格式是否符合hash:salt规范服务层检查Hikvision ISM Server服务状态、/log/目录下最近1小时auth.log是否有Invalid credentials高频报错。# hik_audit.py 关键片段 import paramiko, re, json from concurrent.futures import ThreadPoolExecutor def audit_node(host, port, username, password): client paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(host, port, username, password) # 探测配置文件 stdin, stdout, stderr client.exec_command(cat /Program Files/Hikvision/ISMServer/conf/app.properties 2/dev/null | findstr encrypt.key) key_line stdout.read().decode() key_match re.search(rencrypt\.key(\w), key_line) key_ok key_match and len(key_match.group(1)) 32 # 16字节Hex为32字符 # 探测数据库假设MySQL stdin, stdout, stderr client.exec_command(mysql -u root -phik123 hik_db -e \SELECT password FROM user_info WHERE id1;\ 2/dev/null) db_result stdout.read().decode() db_ok bool(re.match(r^[a-f0-9]{64}:[a-zA-Z0-9]$, db_result.strip().split(\n)[-1])) client.close() return { host: host, config_ok: key_ok, db_ok: db_ok, recommend: 阶段二直写 if (key_ok and db_ok) else 需阶段三重建 } # 批量执行 nodes [(192.168.1.10, 22, admin, pass123), (192.168.1.11, 22, admin, pass123)] with ThreadPoolExecutor(max_workers5) as executor: results list(executor.map(lambda x: audit_node(*x), nodes)) print(json.dumps(results, indent2))参数说明key_ok判断密钥长度32字符Hex16字节db_ok用正则校验password字段是否为标准64字符哈希:Salt格式。recommend字段直接给出最优重置阶段避免工程师现场决策失误。5.2 输出报告解读与行动映射脚本输出JSON报告示例[ { host: 192.168.1.10, config_ok: true, db_ok: true, recommend: 阶段二直写 }, { host: 192.168.1.11, config_ok: false, db_ok: false, recommend: 需阶段三重建 } ]行动映射表节点IPconfig_okdb_ok推荐阶段现场操作指引192.168.1.10TrueTrue阶段二直接执行3.2节SQL10分钟内完成192.168.1.11FalseFalse阶段三需协调测试机预留2小时重建时间我的习惯每次出发前用此脚本扫描所有待维保节点将报告打印贴在工装口袋里。遇到config_okfalse的节点提前联系客户申请测试机访问权限db_okfalse的节点随身携带预装Hik-ISM的便携SSD。真正的效率来自把不确定性变成确定性清单。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

风电紧固件技术解析:从材料选择到安装工艺

风电紧固件技术解析:从材料选择到安装工艺

1. 风电紧固件技术需求全景解析在风力发电机组这个庞然大物里,螺栓螺母这些看似不起眼的紧固件,实则是维系整个系统安全运转的"关节"。主机舱、齿轮箱、偏航系统这三大核心部件对紧固件的要求各有侧重,但都指向同一个目标——在极端…

2026/10/13 13:38:19 阅读更多 →
高校科研管理系统:Python+Flask+Vue全栈开发实践

高校科研管理系统:Python+Flask+Vue全栈开发实践

1. 项目背景与核心价值高校科研管理一直是学术机构运营中的关键环节,特别是纵向项目的全生命周期管理。传统Excel邮件的工作模式存在数据分散、流程不透明、统计困难等痛点。这个基于PythonFlaskVue技术栈的科研管理系统,正是为解决这些问题而生。我在实…

2026/10/13 13:38:19 阅读更多 →
UE5 C++ JSON读写:FJsonObject与FJsonValue完全解析

UE5 C++ JSON读写:FJsonObject与FJsonValue完全解析

最近在某个项目的存档模块里折腾 JSON 读写,UE5 的 C 侧 API 绕来绕去,最后发现核心就两个类:FJsonObject和FJsonValue。如果你也在跟教程学 UE5 C 的 JSON 部分,到了第 61-3 节这里刚好进入最绕的一段——类继承链、各种 Value 子…

2026/10/13 13:37:18 阅读更多 →

最新新闻

基于模型的测试(MBT)实战:状态机建模与用例自动生成

基于模型的测试(MBT)实战:状态机建模与用例自动生成

1. 为什么我会推荐把MBT放进测试技术栈1.1 传统用例设计的三道坎做测试这行时间长了,你会慢慢发现一个有意思的现象:真正让人头疼的不是测试执行,而是测试设计。需求评审完了,开发方案定了,接下来就是用例设计。但用例…

2026/10/13 15:09:41 阅读更多 →
从数据抓取到统计回测:足球数据下载搜索统计系统设计

从数据抓取到统计回测:足球数据下载搜索统计系统设计

简介:这套面向足球爱好者和彩票玩家的数据处理套件,围绕赔率、盘口、竞彩数据,提供下载、检索与统计能力,适合跟踪赛事动态、辅助投注决策的用户。压缩包共18个文件、约1.53MB,exe主程序承担下载与查询核心工作&#x…

2026/10/13 15:09:41 阅读更多 →
PaperSpine 本地参考文献摄入(Local Reference Ingestion)实战指南:local-first 文献索引机制与源码级解析

PaperSpine 本地参考文献摄入(Local Reference Ingestion)实战指南:local-first 文献索引机制与源码级解析

AI 技能AI 写作人工智能深度研究AI 应用 【免费下载链接】PaperSpine PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/ 项目地址: https://gitcode.co…

2026/10/13 15:09:41 阅读更多 →
AI如何“看懂“屏幕?typesafe-computer-use五步决策循环完全解析

AI如何“看懂“屏幕?typesafe-computer-use五步决策循环完全解析

【免费下载链接】typesafe-computer-use Computer use for about $0.0002 a step: OCR the screen, classify the next action with TypeSafe, click. macOS. 项目地址: https://gitcode.com/gh_mirrors/ty/typesafe-computer-use 点击查看 免费下载 typesafe-comp…

2026/10/13 15:09:41 阅读更多 →
Rune主题与外观定制:从主题包到壁纸的5个快速美化技巧

Rune主题与外观定制:从主题包到壁纸的5个快速美化技巧

【免费下载链接】rune the development environment for pros 项目地址: https://gitcode.com/gh_mirrors/rune13/rune 点击查看 免费下载 Rune 是一款面向专业开发者的键盘驱动 IDE,它的主题与外观定制能力远超想象:内置 16 个高质量主题、…

2026/10/13 15:09:41 阅读更多 →
掌握新一代AI工具:从提示词设计到工作流搭建的硬技能

掌握新一代AI工具:从提示词设计到工作流搭建的硬技能

1. 为什么“会用AI工具”正在变成一项硬技能 这两年我身边做开发的朋友、做设计的朋友、甚至做运营和行政的朋友,都在聊同一件事:AI工具怎么用才能真正落到工作里。不是那种“打开网页问一句、复制答案”的浅层玩法,而是把它当成一个能持续产…

2026/10/13 15:08:40 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 18:11:17 阅读更多 →