helper.sh — ADS-005 / File identity review / 文件字节核对 / 檔案位元組核對 / ファイル照合 Date: 2026-10-30 Audit baseline Git: 96154b5530605f55c1a11b8eb8271babedd6004e EN Finding and priority: production hello, Ubuntu VPN and router detail pages returned HTTP 200 and asked visitors to compare versions, but had no SHA-256 or local file checker. The existing migration planner already had a scoped hash; it was retained. This batch extends the actual download/review workflow on the 18 existing script guides without creating another catalog, selector or installer builder. The homepage's unsupported production-ready headline was replaced with the actual choose/review/compare workflow. Implementation: build-time raw public-file bytes determine SHA-256, byte count and /checksums/.sha256. A browser-only file picker reads at most 2 MiB with Web Crypto SHA-256. It does not decode or normalize newlines, execute the file, upload it or persist it. Changing/clearing the selection invalidates pending results. A checksum command is a preview for GNU Coreutils; it was not executed on this Windows host. Both script and checksum are from the same site, not an independent signature. Identity is not a safety, host-compatibility or upstream-dependency verdict. Environment: Windows, Node v22.22.2, Astro 5.18.1 static build, Pagefind 1.4.0, ChatGPT in-app browser, localhost preview 127.0.0.1:4321. Inputs were bundled public scripts and controlled empty/2 MiB+1 fixtures; no private logs or credentials. Expected / actual evidence: - npm test: all isolated JavaScript/catalog tests expected to pass; actual 26 passed. Tests include LF/CRLF mismatch, renamed matching file, empty/oversize bounds, unavailable crypto, unreadable file and safe artifact paths. Missing crypto and read failure are simulated API cases, not actual browser failures. - npm run build: expected static pages, checksum endpoints and four search indexes; actual exit 0, 205 content/error pages indexed in four languages. Existing 84 redirect fallback documents remain excluded from search. - npm run check:content: expected all 18 saved checksum files and 72 localized guide digests to match actual dist script bytes; actual passed, alongside 204 self-canonical localized pages, 1,020 hreflang links, 200 sitemap entries and 84 redirects. Internal-link count is recorded in ADSENSE-TODO.md. - Real browser, all four languages: no selection, matching hello.sh, wrong script, empty file, 2 MiB+1 file, clear-and-focus and hidden stale digest passed. Expected exact match only for original bytes; actual match/mismatch messages were correct and localized. Files were selected through the real browser chooser and compared with Enter. - Four real checksum downloads matched the expected text for hello.sh: 36f25a1385e6e94b11ccdf8f96febf24848cfff928bfe51ff0967e2d0620bded, two spaces, hello.sh, newline. Copy by keyboard and actual clipboard readback matched the full command in every language. - Desktop 1280x900 and narrow 390x844: eight language/viewport checks had no horizontal overflow, and the anchored checker title stayed below the sticky header. An initially obscured anchor was corrected and retested. - No bundled installer source changed. No install, Linux host, container, VPN, migration, disk, firewall, DNS or remote dependency was executed/tested. No AdSense review was requested. Static, simulated, browser and real-system evidence are not interchangeable. Remote mutable dependencies do not inherit these results. ZH-CN 实际发现与优先级:生产 hello、Ubuntu VPN 和路由器详情页返回200,要求核对版本,却没有SHA-256或本地文件比对入口。现有迁移计划器已有单独哈希,继续保留。本轮在18个既有脚本指南补齐下载审阅流程,不另建目录、选择器或安装命令生成器;首页“生产就绪”宣称改为真实的选择、审阅、字节核对流程。 实现:构建时按public原始文件字节生成SHA-256、字节数及 /checksums/<文件名>.sha256。浏览器选择器仅在本地读取不超过2 MiB的文件并使用Web Crypto;不规范化换行、不执行、不上传、不持久化。更换或清除文件会使旧异步结果失效。GNU Coreutils命令仅提供预览,未在Windows执行。校验值与脚本同源,不是独立签名;一致不证明安全、适用性或远程依赖可信。 环境:Windows、Node v22.22.2、Astro 5.18.1静态构建、Pagefind 1.4.0、应用内浏览器;本地127.0.0.1:4321。仅使用公开脚本和受控空文件、2 MiB+1文件,无私有日志或凭据。 - 隔离测试预期全部通过,实际26项通过;包括LF/CRLF、改名、缺失/空/超限文件、加密接口缺失、读取失败和路径校验。后两类是模拟API,不是实际浏览器失败。 - 构建退出0,四语言索引205个内容/错误页;原84个跳转后备文档不进入搜索。静态检查18份校验文件及72个本地化指南哈希均与dist实际脚本字节一致,并验证204个canonical、1020条语言链接、200条sitemap及84个跳转。 - 四语言真实浏览器文件选择、Enter比较:未选择、匹配hello.sh、错选脚本、空文件、超限、清除并恢复焦点、移除旧哈希均通过。四份实际下载校验文件与hello.sh哈希文本一致,四语言键盘复制和真实剪贴板回读与预览一致。 - 桌面1280×900及窄屏390×844共8项通过,无横向溢出,锚点标题位于固定页头下方;首轮遮挡已修复复测。 - 未改安装器源码,未执行安装、Linux实机、容器、VPN、迁移、磁盘、防火墙或DNS操作;未测试可变远程依赖,未提交复审。哈希只核对字节,静态、模拟、浏览器与实机证据分别标明。 ZH-TW 實際發現與優先序:正式環境hello、Ubuntu VPN及路由器詳情頁返回200,要求核對版本,卻沒有SHA-256或本機檔案比對入口。既有遷移規劃器已有個別雜湊,繼續保留。本輪在18個既有指南補齊下載審閱流程,不另建目錄、選擇器或安裝命令產生器;首頁「正式環境就緒」宣稱改為選擇、審閱、位元組核對流程。 實作:建置時依public原始檔案位元組產生SHA-256、位元組數及 /checksums/<檔名>.sha256。瀏覽器僅在本機讀取不超過2 MiB的檔案並使用Web Crypto;不正規化換行、不執行、不上傳、不持久儲存。更換或清除選擇會使舊結果失效。GNU Coreutils命令僅預覽,未在Windows執行。校驗值與腳本同源,不是獨立簽章;一致不證明安全、適用性或遠端相依項目可信。 環境:Windows、Node v22.22.2、Astro 5.18.1靜態建置、Pagefind 1.4.0、應用程式內瀏覽器;本機127.0.0.1:4321。僅使用公開腳本及受控空檔案、2 MiB+1檔案。 - 隔離測試預期全通過,實際26項通過;包括LF/CRLF、改名、未選擇/空/超限檔案、加密介面缺失、讀取失敗及路徑檢查。後兩類是模擬API,非實際瀏覽器失敗。 - 建置結束碼0,四語言索引205個內容/錯誤頁;原84個跳轉文件不進入搜尋。18份校驗檔案與72個語言別指南雜湊均符合dist腳本位元組,並驗證204個canonical、1020條語言連結、200條sitemap及84個跳轉。 - 四語言真實選檔及Enter比較:未選擇、匹配hello.sh、錯選腳本、空檔案、超限、清除及還原焦點、移除舊雜湊均通過。四份實際下載校驗檔案與hello.sh雜湊文字一致;鍵盤複製與真實剪貼簿回讀符合預覽。 - 桌面1280×900及窄螢幕390×844共8項通過,無橫向溢出,錨點標題位於固定頁頭下方;首輪遮擋已修復重測。 - 未改安裝器原始碼,未執行安裝、Linux實機、容器、VPN、遷移、磁碟、防火牆或DNS操作;未測試可變遠端相依項目,未提交複審。雜湊只核對位元組,各類證據分別標示。 JA 確認事項と優先順位:公開中のhello、Ubuntu VPN、ルーターのガイドは200を返し版の確認を求めていましたが、SHA-256やローカル照合がありませんでした。既存の移行計画の専用ハッシュは維持します。18の既存ガイドに保存・確認の流れを追加し、別の一覧・選択機能・導入ビルダーは増やしていません。トップの本番向けという表現も、実際の選択・確認・照合手順に置き換えました。 実装:ビルド時のpublicファイルの生バイトからSHA-256、サイズ、/checksums/<ファイル名>.sha256を作成します。ブラウザーは2 MiB以下の選択ファイルをWeb Cryptoで照合するだけで、改行変換・実行・送信・永続保存はしません。選び直しや消去は旧結果を無効化します。GNU Coreutilsコマンドは表示のみでWindows上では実行していません。同一サイトのチェックサムは独立した署名ではなく、一致しても安全性・ホスト適合性・上流の真正性を証明しません。 環境:Windows、Node v22.22.2、Astro 5.18.1静的ビルド、Pagefind 1.4.0、アプリ内ブラウザー、127.0.0.1:4321。公開ソースと管理した空・2 MiB+1ファイルだけを使いました。 - 隔離テストは全件成功を期待し、26件成功しました。LF/CRLF、改名、未選択・空・サイズ上限、暗号APIなし、読み取り失敗、パス制限を含みます。暗号APIなしと読み取り失敗は模擬APIで、実ブラウザー障害ではありません。 - ビルド終了コード0、4言語205ページを索引化し、84の旧転送文書は検索対象外です。18チェックサムと72言語別ガイドがdistの実バイトに一致し、204のcanonical、1020言語リンク、200 sitemap項目、84転送も成功しました。 - 4言語で実ファイル選択とEnter比較を行い、未選択、hello.sh一致、別スクリプト、不正な空・超過ファイル、消去・フォーカス復帰、旧ハッシュ消去が成功しました。実際に4回保存したチェックサムとコピーしたコマンドのクリップボード回読も一致しました。 - 1280×900と390×844の8検査で、横にはみ出さず、アンカーの見出しが固定ヘッダーの下に表示されました。初回の隠れは修正・再検査済みです。 - 導入ソースは変更せず、導入・実Linux・コンテナー・VPN・移行・ディスク・ファイアウォール・DNSの操作や試験はしていません。可変の上流は未検証で、再審査は送信していません。ハッシュはバイトの識別であり、証拠の種類は区別します。 Official implementation references / 官方实现资料 / 官方實作資料 / 公式資料 https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest https://www.gnu.org/s/coreutils/manual/html_node/sha2-utilities.html Build-input byte table follows. Windows local values and Git LF values may differ; each deployment generates its own checksums from its actual bundled bytes. hello.sh Windows SHA-256: 36f25a1385e6e94b11ccdf8f96febf24848cfff928bfe51ff0967e2d0620bded Git LF SHA-256: 36f25a1385e6e94b11ccdf8f96febf24848cfff928bfe51ff0967e2d0620bded docker-data-move.sh Windows SHA-256: bdeb4c864033e52817b58dbcc2fb06600311f185110746456faab8444c004c45 Git LF SHA-256: 5b35b743ee0609c61f6eca3666a3facb7d35b6e9742a52e5cfcf8ecefdff75e8 install_docker_ubuntu_2404.sh Windows SHA-256: ee56badef35e34b3defbbb24b7d1ed35635f7a91d7f57fe05aa8325699aaf465 Git LF SHA-256: ee56badef35e34b3defbbb24b7d1ed35635f7a91d7f57fe05aa8325699aaf465 install_nginx_base_docker.sh Windows SHA-256: 7f6032a0a10041e3da1c1cd80294d9e9d383ecaaf29b62dcdb7bd04799c75bd2 Git LF SHA-256: 7f6032a0a10041e3da1c1cd80294d9e9d383ecaaf29b62dcdb7bd04799c75bd2 install_mysql57_base_docker.sh Windows SHA-256: 6d16610c307e30338e693a6cfdbf6d86ffa85e6260b7407346ae3ca1bddf9ef3 Git LF SHA-256: 6d16610c307e30338e693a6cfdbf6d86ffa85e6260b7407346ae3ca1bddf9ef3 install_redis705_base_docker.sh Windows SHA-256: 1dff99da3bc7da24e7e14dace74a716a9be1592b77ce03a42864065022bf391b Git LF SHA-256: 1dff99da3bc7da24e7e14dace74a716a9be1592b77ce03a42864065022bf391b install_php72_base_docker.sh Windows SHA-256: 16e8a4eadeee92eb8c1cef84932dbeaf10bacb92e43a7003f632e6a0b3204b9b Git LF SHA-256: 16e8a4eadeee92eb8c1cef84932dbeaf10bacb92e43a7003f632e6a0b3204b9b install_workerman3524_base_docker.sh Windows SHA-256: e3f40b68c2dc6cc4c865d7498000d73352f373a589362c141e485e3567f7bbb4 Git LF SHA-256: e3f40b68c2dc6cc4c865d7498000d73352f373a589362c141e485e3567f7bbb4 install_openvpn_server_centos.sh Windows SHA-256: be6452711c90c6e7284fc9d6c8bc8ef547917367e4040c26b54c52ef95a1c6fc Git LF SHA-256: c5f37a87d68ccbcf392d02635c53ef6caab68f3777bf96feae652e517743fa6b install_openvpn_client_ubuntu.sh Windows SHA-256: c096e3498bd2f98b7b57bcd28b0dc0664e658f60a4cb2caa2a192195979e4f00 Git LF SHA-256: c096e3498bd2f98b7b57bcd28b0dc0664e658f60a4cb2caa2a192195979e4f00 install_openvpn_client_centos7.sh Windows SHA-256: 1f4728a6858e281947a84d3c69eb447b1cb6eda4bec024f798ebdbeed2a8ec51 Git LF SHA-256: 541900e8eb2e07b5154fe4d5366dcfc01fac11e34e56ecbd5ac112b4c73a47f1 install_openvpn_client_anolis8.sh Windows SHA-256: 9144de578adf5f6b671c6132306c7bdc8ca95402a9e5b16d4e23354be1b5b669 Git LF SHA-256: 8e827535d215b88428f39e0b4d000777abc6fc87130fe605114ece9448898355 disable_openvpn_client_dns.sh Windows SHA-256: f11926c9c9ee22e3600d4c974de08b7ffa2a84270124e643c74edaf9545e0ffd Git LF SHA-256: 72aa960429bb6bc1ca576a42de7f9441969d999838972f30828b9bff120cd2ac switch-centos7-repo.sh Windows SHA-256: 4a15976771c49d4680122d6390aa19da3b4379bb2bc086d5738472340155930c Git LF SHA-256: 4a15976771c49d4680122d6390aa19da3b4379bb2bc086d5738472340155930c optimize_centos7_ssh.sh Windows SHA-256: 83286133883b50a41d5a144397e9d4d380e14f8a0e3bf25be90348b92d678c53 Git LF SHA-256: 83286133883b50a41d5a144397e9d4d380e14f8a0e3bf25be90348b92d678c53 centos_disable_password_ssh.sh Windows SHA-256: 8605b22d876f2d661cfb54990bdf634a9505cb55f00653d471358085db4e627e Git LF SHA-256: 8605b22d876f2d661cfb54990bdf634a9505cb55f00653d471358085db4e627e install_bleachwrt_docker_centos7.sh Windows SHA-256: a832695d02b75ba95d25c2ed99fd13c482c4a991f036ac2f6a480eb9a6216739 Git LF SHA-256: a832695d02b75ba95d25c2ed99fd13c482c4a991f036ac2f6a480eb9a6216739 tree-to-file.sh Windows SHA-256: 5abd1198eb756cd94316669022678802d59c1121f221cb879d6255259d47097d Git LF SHA-256: 5abd1198eb756cd94316669022678802d59c1121f221cb879d6255259d47097d Production acceptance / 生产验收 / 正式環境驗收 / 公開後の確認 Revision: a8f6404b1247ca1296b2115ba71f6a8ea399268d Cloudflare Pages: bd81a8bc-481e-4973-848e-cdd4179dc2f1 — success EN: 18/18 checksum responses matched production raw script bytes; 72/72 localized guide digests/canonicals passed; report returned 200. Four actual production downloads matched after browser file selection. The actual CentOS VPN checksum download contains 541900e8eb2e07b5154fe4d5366dcfc01fac11e34e56ecbd5ac112b4c73a47f1; its Windows CRLF source correctly mismatched that deployed LF version. Four foreground clipboard comparisons passed; a background automation attempt returned localized copy failure before foreground testing. Four production narrow pages and eight local homepage locale/viewport checks passed. No script was executed. ZH-CN: 18/18线上校验文件符合原始脚本字节,72/72本地化指南哈希及canonical通过,报告返回200。四次真实生产脚本下载选回浏览器后全部一致。CentOS VPN实际校验下载为541900e8开头的LF哈希,选择Windows CRLF副本时正确显示不一致。四语言前台复制回读通过;后台自动化曾返回本地化复制失败,随后以前台操作核验。四个生产窄屏及八个本地首页组合通过,未执行脚本。 ZH-TW: 18/18線上校驗檔案符合腳本位元組,72/72語言別指南雜湊與canonical通過,報告返回200。四次真實下載選回瀏覽器後全部一致。CentOS VPN實際校驗下載為541900e8開頭的LF雜湊,Windows CRLF副本正確顯示不一致。四語言前景複製回讀通過;背景自動化曾顯示本地化複製失敗,後以可互動前景操作確認。四個正式環境窄螢幕及八個本機首頁組合通過,未執行腳本。 JA: 18チェックサムが公開ファイルの実バイトに一致し、72言語別ガイドのハッシュとcanonical、報告の200を確認しました。実保存した4スクリプトもブラウザー照合で一致しました。CentOS VPNの実チェックサムは541900e8で始まるLF版で、Windows CRLF版は正しく不一致でした。4言語の前面でのコピー回読は成功し、背景操作では実際のコピー失敗表示も確認しました。公開ページの狭幅4件とローカルのトップページ8件も成功しました。実行はしていません。