场景:
google play更改签名秘钥报错,执行脚本如下:
$ java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=/path/to/encryption_public_key.pem
报错原因:
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSANE/OAEPWithSHA1AndMGF1Padding
解决方法:
1、下载源码,然后修改加密方式:
2、源码导入IDEA后,搜索文件
ExportEncryptedPrivateKeyTool,查找
RSA/NONE/OAEPWithSHA1AndMGF1Padding,替换为:
RSA/ECB/OAEPWithSHA1AndMGF1Padding
3、运行的时候赋值
4、带上运行参数
--keystore=test.jks --alias=demo --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem
5、运行mian方法,成功之后会生成output.zip在当前项目目录下
6、把output.zip上传到google play
=====================================================================
由于很多人都反馈出现打开项目之后,有缺少包依赖的问题,我把本地的打开后的效果截图,有问题的做个参考。
1、IDE版本信息
2、sdk和语言版本配置
3、mian模块配置
4、 pepk-src模块配置
修改前的源码可以从这里下载,再按照上面的流程操作即可:
https://download.csdn.net/download/szdenny/88267866=
=============================================================
基于大家的评论,还是会碰到各种问题,我自己把编译好的jar放到资源里面:
https://download.csdn.net/download/szdenny/89076799
如何使用:
1、下载加密公钥,这个只有30分钟有效,需要用户使用时候到play去下载:
2、把下载好的公钥:encryption_public_key.pem和https://download.csdn.net/download/szdenny/89076799下载好的pepk-src.jar放到同一个目录
3、自己创建一个test.keystore,android签名:
keytool -genkeypair -alias test -keyalg RSA -keysize 2048 -validity 9125 -keystore test.keystore
3、打开控制台:
4、 输入命令:
java -jar pepk-src.jar --keystore=test.keystore --alias=test --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem --keystore-pass=123456
5、把output.zip上传到google play,然后点击保存即可。
到此,流程已经全部结束;
如果可以解决大家问题的,请留下你免费的点赞和收藏,如果有什么问题的可以留言或者私信,
感谢大家的阅读。