【问题标题】:android.security.KeyStoreException: Signature/MAC verification failedandroid.security.KeyStoreException:签名/MAC 验证失败
【发布时间】:2021-07-21 14:30:53
【问题描述】:

我在尝试注册应用程序时遇到错误。当我输入我的电话号码并注册时,它会进入 otp 验证但没有得到 otp。但它给了我一个错误,说获取安全网令牌的问题:7。请帮助我完成它。以前可以用,现在出错了。

我在 firebase 设置中也添加了 sha-1 和 sha-256。 我也添加了 google-service.jsons 文件。

错误:

javax.crypto.AEADBadTagException
    at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:51 
7)
    at javax.crypto.Cipher.doFinal(Cipher.java:2113)
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzd(com.google.firebase:firebase-auth@@20.0.4:7)
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzb(com.google.firebase:firebase-auth@@20.0.4:1)
    at com.google.android.gms.internal.firebase-auth-api.zzau.zzi(com.google.firebase:firebase-auth@@20.0.4:5)
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzi(com.google.firebase:firebase-auth@@20.0.4:1)
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzd(com.google.firebase:firebase-auth@@20.0.4:2)
    at com.google.firebase.auth.internal.zzk.<init>(com.google.firebase:firebase-auth@@20.0.4:7)
    at com.google.firebase.auth.internal.zzk.zza(com.google.firebase:firebase-auth@@20.0.4:3)
    at com.google.firebase.auth.internal.RecaptchaActivity.zzd(com.google.firebase:firebase-auth@@20.0.4:9)
    at com.google.android.gms.internal.firebase-auth-api.zztw.<init>(com.google.firebase:firebase-auth@@20.0.4:13)
    at com.google.firebase.auth.internal.RecaptchaActivity.onResume(com.google.firebase:firebase-auth@@20.0.4:43)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1465)
    at android.app.Activity.performResume(Activity.java:8223)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4779)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4832)
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:8178)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
 Caused by: android.security.KeyStoreException: Signature/MAC verification failed
    at android.security.KeyStore.getKeyStoreException(KeyStore.java:1316)
    at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:224)
    at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(AndroidKeyStoreAuthenticatedAESCipherSpi.java:373)
    at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
    at javax.crypto.Cipher.doFinal(Cipher.java:2113) 
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzd(com.google.firebase:firebase-auth@@20.0.4:7) 
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzb(com.google.firebase:firebase-auth@@20.0.4:1) 
    at com.google.android.gms.internal.firebase-auth-api.zzau.zzi(com.google.firebase:firebase-auth@@20.0.4:5) 
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzi(com.google.firebase:firebase-auth@@20.0.4:1) 
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzd(com.google.firebase:firebase-auth@@20.0.4:2) 
    at com.google.firebase.auth.internal.zzk.<init>(com.google.firebase:firebase-auth@@20.0.4:7) 
    at com.google.firebase.auth.internal.zzk.zza(com.google.firebase:firebase-auth@@20.0.4:3) 
    at com.google.firebase.auth.internal.RecaptchaActivity.zzd(com.google.firebase:firebase-auth@@20.0.4:9) 
    at com.google.android.gms.internal.firebase-auth-api.zztw.<init>(com.google.firebase:firebase-auth@@20.0.4:13) 
    at com.google.firebase.auth.internal.RecaptchaActivity.onResume(com.google.firebase:firebase-auth@@20.0.4:43) 
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1465) 
    at android.app.Activity.performResume(Activity.java:8223) 
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4779) 
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4832) 
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:213) 
    at android.app.ActivityThread.main(ActivityThread.java:8178) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) 
W/zzds: cannot decrypt keyset: 
javax.crypto.AEADBadTagException
    at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:517)
    at javax.crypto.Cipher.doFinal(Cipher.java:2113)
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzd(com.google.firebase:firebase-auth@@20.0.4:7)
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzb(com.google.firebase:firebase-auth@@20.0.4:4)
    at com.google.android.gms.internal.firebase-auth-api.zzau.zzi(com.google.firebase:firebase-auth@@20.0.4:5)
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzi(com.google.firebase:firebase-auth@@20.0.4:1)
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzd(com.google.firebase:firebase-auth@@20.0.4:2)
    at com.google.firebase.auth.internal.zzk.<init>(com.google.firebase:firebase-auth@@20.0.4:7)
    at com.google.firebase.auth.internal.zzk.zza(com.google.firebase:firebase-auth@@20.0.4:3)
    at com.google.firebase.auth.internal.RecaptchaActivity.zzd(com.google.firebase:firebase-auth@@20.0.4:9)
    at com.google.android.gms.internal.firebase-auth-api.zztw.<init>(com.google.firebase:firebase-auth@@20.0.4:13)
    at com.google.firebase.auth.internal.RecaptchaActivity.onResume(com.google.firebase:firebase-auth@@20.0.4:43)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1465)
    at android.app.Activity.performResume(Activity.java:8223)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4779)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4832)
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:8178)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
 Caused by: android.security.KeyStoreException: Signature/MAC verification failed
    at android.security.KeyStore.getKeyStoreException(KeyStore.java:1316)
    at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:224)
    at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(AndroidKeyStoreAuthenticatedAESCipherSpi.java:373)
    at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
    at javax.crypto.Cipher.doFinal(Cipher.java:2113) 
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzd(com.google.firebase:firebase-auth@@20.0.4:7) 
    at com.google.android.gms.internal.firebase-auth-api.zzdt.zzb(com.google.firebase:firebase-auth@@20.0.4:4) 
    at com.google.android.gms.internal.firebase-auth-api.zzau.zzi(com.google.firebase:firebase-auth@@20.0.4:5) 
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzi(com.google.firebase:firebase-auth@@20.0.4:1) 
    at com.google.android.gms.internal.firebase-auth-api.zzdr.zzd(com.google.firebase:firebase-auth@@20.0.4:2) 
    at com.google.firebase.auth.internal.zzk.<init>(com.google.firebase:firebase-auth@@20.0.4:7) 
    at com.google.firebase.auth.internal.zzk.zza(com.google.firebase:firebase-auth@@20.0.4:3) 
    at com.google.firebase.auth.internal.RecaptchaActivity.zzd(com.google.firebase:firebase-auth@@20.0.4:9) 
    at com.google.android.gms.internal.firebase-auth-api.zztw.<init>(com.google.firebase:firebase-auth@@20.0.4:13) 
    at com.google.firebase.auth.internal.RecaptchaActivity.onResume(com.google.firebase:firebase-auth@@20.0.4:43) 
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1465) 
    at android.app.Activity.performResume(Activity.java:8223) 
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4779) 
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4832) 
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:213) 
    at android.app.ActivityThread.main(ActivityThread.java:8178) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) 
E/FirebearCryptoHelper: Exception encountered during crypto setup:
Protocol message contained an invalid tag (zero).
KeysetManager failed to initialize - unable to get Public key
E/RecaptchaActivity: Could not generate an encryption key for reCAPTCHA - cancelling flow.
W/System: Ignoring header X-Firebase-Locale because its value was null.
E/zzf: Failed to get reCAPTCHA token with error [An internal error has 
occurred. [ Failed to generate/retrieve public encryption key for reCAPTCHA 
flow. ]]- calling backend without app verification

【问题讨论】:

  • 我也面临与 Firebase 的电话身份验证完全相同的问题,您找到任何解决方案了吗?
  • 您可以查看答案可能对您有帮助

标签: java android firebase android-studio one-time-password


【解决方案1】:

好吧,我几乎没有经历过。最后我明白了mac验证失败的错误。这是因为,我们需要启用 android 设备验证。为此,我遵循了以下步骤。

  1. 转至https://console.cloud.google.com/

2.输入你的firebase项目名称->选择你的项目->你的项目弹出并点击

  1. 点击API和服务(左侧导航栏)

  2. 选择库->向下滚动并点击移动设备->点击android设备验证->启用api

  3. 清理并重建您的应用程序-> 运行-> 完美运行。

我在下面添加了依赖:

实现'androidx.security:security-crypto:1.1.0-alpha02'

实现“androidx.browser:browser:1.2.0”

现在它的工作对我来说非常好。它也可以帮助其他人。

【讨论】:

  • 谢谢它的工作,但我不需要添加implementation 'androidx.security:security-crypto:1.1.0-alpha02' 在android中使用firebase电话身份验证
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2013-10-28
  • 2020-11-02
  • 2016-01-13
相关资源
最近更新 更多