azure signaturehash 从 debug.keystore 拒绝我的 Base64 编码的 SHA1 哈希

Fel*_*lus 4 android azure xamarin

我尝试在 azure 上验证我的 xamarin 应用程序。

要为我的 debug.keystore 创建 Base64 编码的 SHA1 哈希,我使用了建议的命令:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

我得到了一个结果,但它有 32 个字符,并且被 azure 前端验证拒绝并显示以下消息:

签名哈希必须是 Base64 编码的 SHA1 哈希。

如果我使用占位符或我的散列的子字符串它正在工作

2pmj9i4rSx0yEb/viWBYkE/ZQrk=       <- `Example from Azure (is working)`
aPz8/NARbPz8pPzg/Iz9aPz8NCg=       <- `some working example generated by me`
CAY/Pz8/NARbPz8pPzg/Iz9aPz8NCg==   <- `My base64 (is not working)`
Run Code Online (Sandbox Code Playgroud)

似乎 azure 总是需要 28 个字符,但我生成的 base74 有 32 ...

我在这个问题上浪费了 20 个小时,但没有找到任何解决方案。

小智 7

我刚刚遇到了同样的问题。AzureAd 似乎不想要 openssl sha1 -binary | openssl base64

我不得不在 android/app/build.gradle 上打开 gradle

打开 app/tasks/android -> 签名报告

以 xx:xx:xx...xx:xx 的形式从那里获取 sha1

在此处转换为 base 64:https : //base64.guru/converter/encode/hex

希望这可以帮助