尝试启用“让Google Play管理应用签名密钥”时遇算法支持错误
尝试启用“让Google Play管理应用签名密钥”时遇算法支持错误
我来帮你排查这个问题!你遇到的java.security.NoSuchAlgorithmException错误,核心原因是你使用的Java版本过高——Java 11及以上的版本默认移除了对SHA1相关加密算法的支持,而Google的PEPK工具旧版本依赖这个算法来完成密钥加密导出。
先看一下你运行的命令:
MacBook-Pro Desktop % java -jar pepk.jar --keystore=cbk.keystore --alias=release --output=cbk1 --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem
错误提示里的RSA/NONE/OAEPWithSHA1AndMGF1Padding算法在高版本Java中被禁用了,所以才会出现找不到提供者的问题。
这里给你两个靠谱的解决办法:
方法一:降级到Java 8(最稳妥)
Google的PEPK工具原本就是基于Java 8开发测试的,切换到JDK 1.8版本就能直接解决问题。你可以先安装JDK 8,然后在运行命令时指定Java 8的执行路径(以Mac为例):/Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home/bin/java -jar pepk.jar --keystore=cbk.keystore --alias=release --output=cbk1 --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem把
jdk1.8.0_xxx替换成你实际安装的JDK 8版本号即可。方法二:修改Java安全配置(不推荐但可行)
如果不想降级Java,你可以修改Java的安全配置文件,重新启用SHA1相关算法:- 找到你当前Java安装目录下的
conf/security/java.security文件; - 打开文件,找到
jdk.tls.disabledAlgorithms和jdk.certpath.disabledAlgorithms这两行配置; - 删除这两行中包含
SHA1或SHA1withRSA的条目; - 保存文件后,重新运行PEPK命令。
注意:这个方法会降低Java的安全性,建议操作完成后再恢复原配置。
- 找到你当前Java安装目录下的
另外,也可以确认一下你的PEPK工具是不是最新版本,不过绝大多数情况下,这个问题都是Java版本过高导致的,优先尝试方法一就好。
备注:内容来源于stack exchange,提问作者cbdev
相关产品推荐
相关产品推荐

