Error: Unable to export or encrypt the private key
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
at java.base/javax.crypto.Cipher.getInstance(Cipher.java:571)
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有兩個(gè)版本,一個(gè)是OracleJDK,另外一個(gè)是OpenjDK难裆, 下載OpenJDK_21下來就可以正常執(zhí)行命令生成zip包了
傳送門:OpenJDK JDK 21.0.2 GA Release
配置環(huán)境變量
JAVA_HOME=/Users/******/jdk-21.0.1.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
在執(zhí)行命令 java檢查版本
java -version
//出現(xiàn)下面的內(nèi)容代表配置好了
openjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment (build 21.0.1+12-29)
OpenJDK 64-Bit Server VM (build 21.0.1+12-29, mixed mode, sharing)
再重新執(zhí)行
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
--keystore=foo.keystore:指定密鑰庫(kù)文件的路徑和名稱圆存。密鑰庫(kù)文件通常包含用于對(duì)應(yīng)用進(jìn)行數(shù)字簽名和身份驗(yàn)證的密鑰和證書正塌。
--alias=foo:指定密鑰庫(kù)中要使用的密鑰的別名负懦。一個(gè)密鑰庫(kù)可以包含多個(gè)密鑰蜈缤,通過別名來標(biāo)識(shí)不同的密鑰揍愁。
--output=output.zip:指定輸出文件的路徑和名稱呐萨。在此示例中,輸出文件將被命名為output.zip莽囤。
--include-cert:包括應(yīng)用證書到輸出文件中谬擦。應(yīng)用證書用于驗(yàn)證應(yīng)用的身份和完整性。
--rsa-aes-encryption:使用RSA-AES加密算法對(duì)輸出文件進(jìn)行加密朽缎。RSA-AES是一種常用的加密算法組合惨远,用于保護(hù)敏感數(shù)據(jù)的機(jī)密性。
--encryption-key-path=/path/to/encryption_public_key.pem:指定用于加密的公鑰文件的路徑和名稱话肖。公鑰用于加密數(shù)據(jù)北秽,并且只有私鑰的持有者才能解密數(shù)據(jù)。