必须用gpg --verify配合官方公钥验证,只校验.sha256毫无意义;需同时具备.tar.gz、.asc签名文件及手动导入的官方公钥,指纹必须完全匹配616b 970b...7e8d 9327,输出含“good signature”且指纹一致才可信。

必须用 gpg --verify 配合官方公钥验证,只校验 .sha256 文件毫无意义——它防不了主动投毒。
下载时确认三件套是否齐全
你手头必须同时有这 3 个文件,缺一不可:
-
phpMyAdmin-X.Y.Z-all-languages.tar.gz(主安装包) -
phpMyAdmin-X.Y.Z-all-languages.tar.gz.asc(签名文件,注意后缀是.asc,不是.sig) - 官方公钥(不能靠
gpg --recv-keys随便拉,得手动导入可信来源的phpmyadmin-release-key.asc)
常见错误:从官网下载了 .tar.gz 和 .sha256,就以为“校验过了”。.sha256 文件本身可能已被篡改,攻击者可以同步替换官网页面上的哈希值。
导入公钥必须核对指纹,一个字符都不能错
官方当前主签名密钥 ID 是 0x4F02A5C67E8D9327,但导入后必须立刻检查指纹是否为:
616B 970B 1702 D4E1 71E2 169E 4F02 A5C6 7E8D 9327
操作步骤:
- 先手动下载公钥:
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpmyadmin-release-key.asc - 导入:
gpg --import phpmyadmin-release-key.asc - 查指纹:
gpg --list-keys --fingerprint 0x4F02A5C67E8D9327
如果输出里指纹少一位、空格位置不对、或末尾数字不符,说明密钥不完整或被中间截断,必须重下重导。GPG 不会警告“指纹接近”,它只认完全匹配。
执行 gpg --verify 的命令格式和关键判断点
在三个文件同目录下运行:
gpg --verify phpMyAdmin-5.2.1-all-languages.tar.gz.asc phpMyAdmin-5.2.1-all-languages.tar.gz
成功标志只有两个,缺一不可:
- 输出中含
Good signature from "Isaac Bennetch <isaac>"</isaac> - 末尾显示
Primary key fingerprint: 616B 970B ... 7E8D 9327(与上一步核对一致)
典型失败场景:
-
Can't check signature: No public key→ 公钥没导入,或导入了但密钥 ID 不匹配 -
WARNING: This key is not certified with a trusted signature!→ 正常,GPG 默认不信任任何密钥;不用gpg --edit-key设 trust,只要指纹对、签名好,就已足够验证来源
为什么不能跳过签名直接解压?
phpMyAdmin 运行在 Web 服务器上,且默认拥有数据库 root 权限。一旦安装包被恶意替换,攻击者就能:
- 在
index.php或libraries/common.inc.php中插入后门,接管所有 SQL 查询 - 把登录凭据偷偷 POST 到外部地址
- 利用
blowfish_secret硬编码漏洞伪造 session,绕过登录直接进后台
这些行为不会触发任何报错,界面照常工作,但你的数据库已实质失守。签名验证是唯一能确认“代码确实出自维护者本人”的技术手段,不是形式主义。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











