从GooglePlay下载后,我的应用会显示javax.crypto.BadPaddingException

时间:2018-10-04 10:54:02

标签: java android encryption

我制作了我的应用的签名发行APK,并通过USB将其复制到手机中并安装了它。然后我将SAME APK文件上传到GooglePlay并从那里安装。但是,当我打开该应用程序时,它仍停留在SplashScreen上。 我使用LogCat来检测错误,这是日志:

  

10-04 13:37:22.052 29875-29903 /? W / System.err:javax.crypto.BadPaddingException:错误:06065064:数字信封例程:EVP_DecryptFinal_ex:错误解密   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(本地方法)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.android.org.conscrypt.OpenSSLCipher.doFinalInternal(OpenSSLCipher.java:430)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:466)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于javax.crypto.Cipher.doFinal(Cipher.java:1340)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.maptriks.nevo.helper.SecurityHelper.decrypt(SecurityHelper.java:101)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.maptriks.nevo.helper.SecurityHelper.decrypt(SecurityHelper.java:91)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.maptriks.nevo.manager.api.BodyRequest.parseNetworkResponse(BodyRequest.java:76)   10-04 13:37:22.052 29875-29903 /? W / System.err:位于com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:123)

我在BadPaddingException上进行了搜索,但所有问题都与对应用程序使用的KEY进行加密/解密有关。但是,根据我的情况,在将其上传到GooglePlay之前,它可以正常工作,我认为这消除了加密/解密错误部分。

首先,我认为ProGuard正在做某事,然后在gradle中将其禁用。仍然我有同样的问题。

更新: 我检查了apk指纹,我的应用程序SHA1指纹与从GooglePlay下载的apk指纹不同。可能是错误的原因吗? 在将其上传到GoolePlay之前,我的应用程序运行完美。

1 个答案:

答案 0 :(得分:0)

您应该向com.maptriks.nevo.manager.api.BodyRequest.parseNetworkResponse(BodyRequest.java:76)com.maptriks.nevo.helper.SecurityHelper.decrypt(SecurityHelper.java:101)添加一些额外的日志,以检查发生了什么情况。