谷歌上传自己的签名zip,报错Unable to export or encrypt the private key(已解决)

在尝试使用谷歌新命令上传应用时,遇到加密私钥的错误,由于NoSuchAlgorithmException,无法进行RSANE/OAEPWithSHA1AndMGF1Padding加密。问题的解决方案是卸载原版JDK,安装并配置OpenJDK,之后命令执行成功。
摘要由CSDN通过智能技术生成

最近在谷歌上传新的app的时候,发现命令跟之前不同

 首先就是按照上述的步骤来,

  1. 下载加密公钥,也就是 encryption_public_key.pem文件
  2. 下载pepk工具(pepk.jar)
  3. 新建一个文件夹,把所有的文件都放进去(包括自己项目的jks,keystore文件,jks可转换为keystore)


注: jks转换keystore

keytool -importkeystore -srckeystore xxx.jks -destkeystore xxx.keystore

4.然后cmd执行命令

java -jar pepk.jar --keystore=google.keystore --alias=google --output=google.zip --include-cert --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem

报错

Error: Unable to export or encrypt the private key
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSANE/OAEPWithSHA1AndMGF1Padding
        at java.base/javax.crypto.Cipher.getInstance(Cipher.java:574)
        at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.encryptPrivateKeyWithCkmRsaAesKeyWrapEncryption(ExportEncryptedPrivateKeyTool.java:284)
        at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncryptedPrivateKeyTool.java:213)
        at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEncryptedPrivateKeyTool.java:165)

解决办法:

卸载原来的jdk,安装OpenJDK (配置环境变量),再次运行命令即可成功。

下载链接icon-default.png?t=N7T8https://jdk.java.net/20/

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
当Java程序在Linux服务器上运行时,如果使用AES加密并使用256位密钥,则可能会出现“java.security.InvalidKeyException: Illegal key size or default parameters”的异常。这是因为默认情况下,Java不允许使用256位密钥进行加密。要解决此问题,需要执行以下步骤: 1.下载Java Cryptography Extension (JCE) Unlimited Jurisdiction Policy Files。这些文件包含允许使用256密钥的策略文件。 2.解压缩下载的文件,并将其中的两个JAR文件(local_policy.jar和US_export_policy.jar)复制到$JAVA_HOME/jre/lib/security目录中。如果该目录中已经存在这些文件,请备份它们并替换为新文件。 3.重新启动Java应用程序并尝试使用256位密钥进行AES加密。 下面是一个示例代码,演示如何使用256位密钥进行AES加密: ```java import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; public class AesEncryptionExample { private static final String ALGORITHM = "AES"; private static final String KEY = "0123456789abcdef0123456789abcdef"; public static String encrypt(String value) throws Exception { SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), ALGORITHM); Cipher cipher = Cipher.getInstance(ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, keySpec); byte[] encryptedValue = cipher.doFinal(value.getBytes()); return Base64.getEncoder().encodeToString(encryptedValue); } public static String decrypt(String value) throws Exception { SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), ALGORITHM); Cipher cipher = Cipher.getInstance(ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, keySpec); byte[] decodedValue = Base64.getDecoder().decode(value); byte[] decryptedValue = cipher.doFinal(decodedValue); return new String(decryptedValue); } public static void main(String[] args) throws Exception { String originalValue = "Hello World!"; String encryptedValue = encrypt(originalValue); String decryptedValue = decrypt(encryptedValue); System.out.println("Original Value: " + originalValue); System.out.println("Encrypted Value: " + encryptedValue); System.out.println("Decrypted Value: " + decryptedValue); } } ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

22ll.cd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值