如何使用 Google 应用签名为 Sms Retriever 生成 11 个字符的哈希密钥

2023-12-30

我使用以下命令生成了 11 个字符的哈希值AppSignatureHelper班级。但是将 apk 上传到 Play 商店后,它们的哈希值就不再起作用了。我发现 Play 将密钥替换为另一个密钥,这就是哈希值也发生更改的原因。现在我在获取 11 个字符的哈希密钥时遇到问题。

我不知道如何使用Google给出的命令。我发现这个命令来自here https://stackoverflow.com/a/50600769/4961874

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 | cut -c1-11

由于我的应用程序启用了 Play 应用程序签名,因此我必须使用此命令,

keytool -exportcert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

我已经更换了keytool其路径来自 JDK 的 bin 文件夹,但随后它说xxd无法识别,所以我从网站下载了它,现在它说tr不被识别,我想它会这样说cut以及。

如果我问这个问题似乎太菜鸟了,请原谅我,但我该如何解决这个问题呢?

UPDATE:我已经在 Linux 机器上尝试了上面的第二个命令,该命令有效并给了我 11 个字符的哈希值,但 SMS 检索器仍然无法工作。

解决方案:在 Nick Fortescue 的回答的帮助下,我下载了 DER 格式的文件。然后使用以下命令将其转换为 .jks 文件,

keytool -importcert -alias myalias -file deployment_cert.der -keystore certificate.jks -storepass mypassword

然后在certificate.jks上执行上面的第一个命令,它成功了!


这是完整的分步指南。

  1. 进入 Play 控制台 -> 打开应用 -> 发布管理 -> 应用签名 -> 下载证书。就像下面的屏幕截图一样

这会给你deployment_cert.der file

  1. 转换deployment_cert.der文件到一个.jks file

使用下面的命令

keytool -importcert -alias YOUR_ALIAS -file deployment_cert.der -keystore certificate.jks -storepass YOUR_PASSWORD

将 YOUR_ALIAS,YOUR_PASSWORD 替换为您在 keystore 中使用的密码。代替deployment_cert.der如果需要,请使用完整路径

输入此命令后会询问

信任这个证书吗? [否]:是的

输入 yes 并单击 Enter 。它将显示消息

证书已添加到密钥库

这将生成一个新文件certificate.jks

  1. 现在在终端输入命令

    keytool -exportcert -alias YOUR_ALIAS -keystore certificate.jks | xxd -p | tr -d "[:space:]" | echo -n YOUR_PACKAGE `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

将 YOUR_ALIAS,YOUR_PACKAGE 替换为您在 keystore,project 中使用的。代替certificate.jks如果需要,请使用完整路径

它会要求输入密码

输入密钥库密码:mypassword

输入您的密码,您将获得哈希值。

编辑 对于 MacOS 用户:

如果您使用的是 MacOS,您可以通过安装 coreutils 来安装 sha256sum,如下所示:

brew install coreutils

或者你可以使用shasum -a 256代替sha256sum像这样:

keytool -exportcert -alias YOUR_ALIAS -keystore certificate.jks | xxd -p | tr -d "[:space:]" | echo -n YOUR_PACKAGE `cat` | shasum -a 256 | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

致谢阿比纳夫·古普塔 https://stackoverflow.com/a/54216303/6478047和这个问题的OP法尔汗·法鲁基 https://stackoverflow.com/q/51365778/6478047以及上面的回答尼克·福蒂斯丘 https://stackoverflow.com/a/51375789/6478047

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Google 应用签名为 Sms Retriever 生成 11 个字符的哈希密钥 的相关文章

随机推荐