面临生成11个哈希密钥字符串的问题,该字符串在SMS Retriever API的官方文档中提供

问题描述 投票:-1回答:1

我的apk在调试模式下工作正常。但是当我用发布模式签署apk时,自动sms retrivr无效。

然后我搜索我发现我必须在官方文档https://developers.google.com/identity/sms-retriever/verify#generating_a_one-time_code上生成一个哈希键

我找到了两个方法1>通过签名帮助类 - 我使用但不工作2>秒通过以下命令

keytool -exportcert -alias MyAndroidKey -keystore MyProductionKeys.keystore | xxd -p | tr -d“[:space:]”| echo -n com.example.myapp cat | sha256sum | tr -d“[:space:] - ”| xxd -r -p | base64 |切-c1-11

但我找不到xxd命令

然后我在堆栈上搜索然后我在git bash命令运行上运行命令,但该哈希键仍然无效

android sms google-play-services smsmanager one-time-password
1个回答
2
投票

通过此代码生成哈希会更容易。

只需拨打以下电话并打印您的签名即可。

ArrayList<String> sigList = (new AppSignatureHelper(this)).getAppSignatures()

代码参考:https://github.com/googlesamples/android-credentials/blob/master/sms-verification/android/app/src/main/java/com/google/samples/smartlock/sms_verify/AppSignatureHelper.java

更新:

调试和发布版本的哈希代码将有所不同。确保使用具有所需格式的otp消息的特定于发布的应用程序哈希代码。

AppSignatureHelper将提供使用apk签名的哈希码。构建版本apk并在日志中打印哈希代码以获取特定于版本的哈希代码。

更新:

通过命令生成的另一种方法:https://developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string

但是,如果您正在使用Windows,它可能无法正常工作,因为它没有像xxd或tr那样的二进制(命令)。在这种情况下,你必须从其他地方下载这些exe。

如果您正在使用git,那么您可以在“C:\ Program Files \ Git \ usr \ bin \”中找到它们,在这种情况下,请按照以下步骤操作。

  1. 在环境变量中添加路径“C:\ Program Files \ Git \ usr \ bin \”。
  2. 重新启动命令提示符。所以xxd和tr在提示符下开始工作。
  3. 在链接中应用提到的命令。

keytool -exportcert -alias MY_ANDROID_KEY -keystore MY_PRODUCTION_KEY | xxd -p | tr -d "[:space:]" | echo -n MY_PACKAGE_NAMEcat| sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

在哪里指挥

  • 用您的密钥别名替换MY_ANDROID_KEY
  • 用您的密钥库路径替换MY_PRODUCTION_KEY(一些xyz.jks)
  • 将MY_PACKAGE_NAME替换为您的包裹名称 你会得到11个字符长的哈希密钥。欢呼。

在这里,如果您遇到像tr: write error: Illegal seek这样的错误,您可以将cammand调用为tr - >

keytool -exportcert -alias MY_ANDROID_KEY -keystore MY_PRODUCTION_KEY | xxd -p | tr -d "[:space:]"

在这种情况下,您将获得大约1800多个字符长的签名字符串。将包和签名字符串传递给AppSignatureHelper的哈希方法,它将返回您的密钥。

(在这里,如果最后你使用AppSignatureHelper,我建议只采用第一种方法)

© www.soinside.com 2019 - 2024. All rights reserved.