我想在我的xamarin android应用程序中使用facebook工具登录。
有谁能告诉我,如何为xamarin android生成密钥哈希 我在developers.facebook.com上看到了这个以生成密钥哈希
keytool -exportcert -alias androiddebugkey -keystore%HOMEPATH%.android \ debug.keystore | openssl sha1 -binary | openssl base64
谁能告诉我,这个命令中每个单词的含义是什么? 应该给这些变量赋予什么值?比如什么是别名?我在哪里可以找到这个和其他。 由于我是Facebook开发的新手,我不知道所有这些条款。如果有人给我任何这样的例子,那将是很好的。 请帮我。 我完全被困在这里。
答案 0 :(得分:4)
尝试
keytool -exportcert -alias androiddebugkey -keystore ~/.local/share/Xamarin/Mono\ for\ Android/debug.keystore | openssl sha1 -binary | openssl base64
默认密钥库密码为 android 。
答案 1 :(得分:0)
你可以通过委托' keytool来获得keytool和openssl的参数列表?'或者' keytool -help'并弄清楚一切:
Commands:
-certreq Generates a certificate request
-changealias Changes an entry's alias
-delete Deletes an entry
-exportcert Exports certificate
-genkeypair Generates a key pair
-genseckey Generates a secret key
-gencert Generates certificate from a certificate request
-importcert Imports a certificate or a certificate chain
-importpass Imports a password
-importkeystore Imports one or all entries from another keystore
-keypasswd Changes the key password of an entry
-list Lists entries in a keystore
-printcert Prints the content of a certificate
-printcertreq Prints the content of a certificate request
-printcrl Prints the content of a CRL file
-storepasswd Changes the store password of a keystore
至于使用示例:我刚刚创建了一个:
C:\Program Files\Java\jdk1.8.0_131\bin>keytool -exportcert -alias androiddebugkey -keystore "C:\\Users\\.android\\debug.keystore" | "C:\\OpenSSL\\bin\\openssl" sha1 -binary |"C:\\OpenSSL\bin\\openssl" base64
你需要在你的CMD的java bin路径中:
C:\ Program Files \ Java \ jdk1.8.0_131 \ bin>
并输入以下命令:
keytool -exportcert -alias androiddebugkey -keystore" C:\ Users \ .android \ debug.keystore" | " C:\ OpenSSL的\ BIN \ OpenSSL的" sha1 -binary |" C:\ OpenSSL \ bin \ openssl" BASE64
确保在所需路径中安装了openssl,但分别修改了命令中的路径。
顺便说一下。 openssl不再生成Windows安装程序二进制文件,因此您需要从第三方获取它
答案 2 :(得分:0)
试试这个。
视窗: keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64
Mac OSX: keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64
答案 3 :(得分:0)
您可以通过两个步骤来获取哈希键。一种是通过命令提示符。另一个是通过编码。通过命令提示符的哈希键仅在第一次使用时有效。我不知道原因我也有同样的问题。所以我以编程方式尝试了它。
try
{
PackageInfo info = PackageManager.GetPackageInfo(
"com.example.packagename",
PackageInfoFlags.Signatures);
foreach (var signature in info.Signatures)
{
MessageDigest md = MessageDigest.GetInstance("SHA");
md.Update(signature.ToByteArray());
Log.Debug("KeyHash:", Base64.EncodeToString(md.Digest(), Base64.Default));
var s = Base64.EncodeToString(md.Digest(), Base64.Default);
}
}
catch (NameNotFoundException e)
{
}
catch (NoSuchAlgorithmException e)
{
}
答案 4 :(得分:0)
在Windows笔记本电脑上,我必须分两步执行操作以获取正确的哈希值(可能是由于keytool和openssl版本的差异):
在命令行(或批处理文件)中运行:
"c:\Program Files\Java\jdk1.8.0_161\bin\keytool.exe" -exportcert -keystore "%LocalAppData%\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android -file _temp.cert
openssl sha1 -binary _temp.cert | openssl base64
del _temp.cert