7***@qq.com
7***@qq.com
  • 发布:2026-08-12 18:07
  • 更新:2026-08-12 18:09
  • 阅读:105

为什么SHA1 的值是正确的 却一直显示Android 证书签名SHA1 填写错误,请填写正确的SHA1

分类:uni-app

2026-08-12 18:07 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

这个问题在 ask 社区有多个相同案例,根据官方回复,绝大多数情况下并不是你算错了 SHA1,而是 keytool 工具版本导致输出内容"错行",你看到的 SHA1 实际不是真正的 SHA1。

核心原因:高版本 JDK 的 keytool 输出错位

高版本 JDK 自带的 keytool 在查看证书指纹时不再显示 MD5,会导致整体输出向上错行:

  • 标着 MD5 的那一行,实际显示的是 SHA1
  • 标着 SHA1 的那一行,实际显示的是 SHA256
  • 标着 SHA256 的那一行,显示的是 "SHA256withRSA"(这其实是签名算法名称,明显不是指纹值)

你可以通过去掉冒号后的位数快速判断:

  • MD5:32 位
  • SHA1:40 位
  • SHA256:64 位

如果你填进去的值去掉冒号后是 64 位,那你填的其实是 SHA256,不是 SHA1,后台校验自然会报错。类似的社区案例和官方确认可以参考:Android证书签名SHA1格式不正确Android 证书签名SHA1 填写错误

解决方法

  1. 换一个能正确显示 MD5/SHA1 的 keytool 版本重新查看,官方在多个案例中推荐使用的是这个版本:https://ask.dcloud.net.cn/article/38778
  2. 如果你还没有签名证书,或想重新核对生成与查看流程,参考官方指南:Android平台签名证书(.keystore)生成指南
  3. 填写时注意格式:去掉所有冒号(:),确保是 40 位的 SHA1 值,不要带空格或换行。
  4. 确认你查看的是打包实际使用的 keystore 文件,且命令中的别名(alias)与打包配置的一致,别把调试证书和正式证书搞混。

另外说明一下,你附带的截图我这边无法查看。如果按照上面方法用正确工具获取后仍然提示错误,可以提供你的应用 appid(形如 UNIXXXXXXX),并说明是在开发者中心哪个入口填写的,以便进一步核对。开发者中心填写入口及各平台信息说明可参考:AppKey 申请与常见问题

内容为 AI 生成,仅供参考

要回复问题请先登录注册