Sco*_*ott 116 android facebook android-keystore
试图用Facebook集成创建一个Android应用程序,我已经得到了你必须生成一个密钥哈希文件的文档中的部分,它指定运行以下代码
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore
| openssl sha1 -binary
| openssl base64
Run Code Online (Sandbox Code Playgroud)
当我在终端中运行此操作时,我发现Keystore被篡改或密码错误,
我只想生成我的Key Hash
谁能指出我正确的方向?
小智 278
为了生成密钥哈希,您需要遵循一些简单的步骤.
2)在C盘中创建一个openssl文件夹
3)将Zip文件解压缩到在C Drive中创建的这个openssl文件夹中.
4)在我的情况下从.android文件夹复制File debug.keystore(C:\ Users\SYSTEM.android)并粘贴到我的案例中的JDK bin文件夹(C:\ Program Files\Java\jdk1.6.0_05\bin)
5)打开命令提示符并在我的例子中给出JDK Bin文件夹的路径(C:\ Program Files\Java\jdk1.6.0_05\bin).
6)复制以下代码并按Enter键
keytool -exportcert -alias androiddebugkey -keystore debug.keystore> c:\ openssl\bin\debug.txt
7)现在你需要输入密码,密码= android.
8)如果你在openssl Bin文件夹中看到,你将得到一个名为debug.txt的文件
9)现在要么可以重新启动命令提示符,要么使用现有的命令提示符
10)返回C盘并给出openssl Bin文件夹的路径
11)复制以下代码并粘贴
openssl sha1 -binary debug.txt> debug_sha.txt
12)你将在openssl bin文件夹中获得debug_sha.txt
13)再次复制以下代码并粘贴
openssl base64 -in debug_sha.txt> debug_base64.txt
14)你将在openssl bin文件夹中获得debug_base64.txt
15)打开debug_base64.txt文件这是你的密钥哈希.
Anh*_*arp 146
根据我的经验,openssl总是很麻烦,我尝试了facebook建议的第二种方法.这太好了.这是获取哈希键的最佳方法.
第二种选择是打印发送到Facebook的密钥哈希并使用该值.对主活动中的onCreate()方法进行以下更改:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.loginhowto",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
...other operations
}//end of onCreate
Run Code Online (Sandbox Code Playgroud)
将com.facebook.samples.loginhowto替换为您自己的包名称(Manifest.xml中的包名称).
官方链接 - https://developers.facebook.com/docs/android/login-with-facebook/(参见页面底部)
openssl文件夹openssl夹中C:bin的openssl 即C:\openssl\bin在命令提示运行以下命令以生成您的keyhash.生成hashkey时应该问你密码.
keytool -exportcert -alias androiddebugkey -keystore"C:\ Users\Anhsirk.android\debug.keystore"| openssl sha1 -binary | openssl base64
注意:在上面的代码注释中,您需要提供用户的路径(例如,在我的情况下,它是C:\ Users\Anhsirk,您只需要为您的用户帐户更改此路径.
给密码作为android
.如果没有要求输入密码,则密钥库路径不正确.
如果一切正常,它应该给你下面的哈希键.

all*_*lts 20
删除〜/ .android/debug.keystore下的调试证书(在Linux和Mac OS X上); 该目录类似于Windows上的%USERHOME%/.android.
然后,当您下次尝试构建调试包时,Eclipse插件应生成新证书.
如果有效,请告诉我.
tig*_*den 14
右键可以从应用程序本身获得,通过添加以下代码来烘烤正确的密钥哈希(在Facebook SDK 3.0以后,这工作)
try {
PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)
将com.package.mypackage替换为您的包名称
Anh*_*Duy 12
I.为facebook创建密钥哈希调试
添加代码以打印出facebook的密钥哈希
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.google.shoppingvn", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:",
Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)
II.为facebook创建密钥哈希版本
(按)keytool -exportcert -alias gci -keystore D:\ folder\keystorerelease | C:\ openssl\bin\openssl sha1 -binary | C:\ openssl\bin\openssl base64.注意:D:\ folder\keystorerelease:是keystorerelease的路径
输入密钥库密码:这是您的注册密钥库释放时的密码.
然后你将有一个密钥哈希:jDehABCDIQEDWAYz5Ow4sjsxLSw =
登录facebook.访问管理应用程序.将关键字哈希粘贴到developers.facebook.com上的应用程序中
Vic*_*khe 12
生成哈希键的最简单方法。
要求: SHA1键
您可以通过两种方式从密钥库文件中获取SHA1密钥
1)找到您的密钥库文件,在该位置打开命令提示符,然后使用下面提到的命令
keytool -list -v -keystore {keystore_name} -alias {alias_name}
Run Code Online (Sandbox Code Playgroud)
然后输入密码,然后将返回md5,sha1和sha256密钥。
要么
2)通过运行signingReport
请参考下图。
运行文件后,将生成包含必需的sha1键的输出。
获得所需的SHA1密钥后
然后去
http://tomeko.net/online_tools/hex_to_base64.php
并粘贴您的sha1键
最后,您将获得Required HashKey,可以将其用于Facebook。
解决这个问题的最简单的解决方案:
我已经有两个月了这个问题了.我的关键哈希值已达到9个.今天我终于找到了简单的解决方案:
步骤1:
安装从手机上的Facebook开发者页面下载的facebook sdk.不要安装正常的Facebook应用程序.确保您可以登录Facebook.然后退出.
第2步:
使用最终版本密钥将您的应用程序导出为apk,就像将其上传到Play商店一样.
第3步:
通过usb cable或usb stick将Apk文件放在手机上.
第4步:
使用文件管理器安装您的应用程序:示例
第5步:
启动您的应用程序并尝试使用Facebook登录.将打开一个对话框并告诉您:"在Facebook开发者控制台中找不到密钥YOURHASHKEY"
第6步:
记下钥匙.
第7步:
把它放到你的Facebook开发者控制台并保存.现在你完成了.下载使用以前使用的密钥库发布的应用程序的任何人都可以登录Facebook.
请享用
小智 6
最后 :)
在这里我的故事:
在设置布局后,将此代码添加到主活动中.
try {
PackageInfo info = getPackageManager().getPackageInfo("PROJECTNAME", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
//textInstructionsOrLink = (TextView)findViewById(R.id.textstring);
//textInstructionsOrLink.setText(sign);
Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
Log.d("nope","nope");
} catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)将PROJECTNAME更改为您的包名!
为facebook生成一线解决方案
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
205286 次 |
| 最近记录: |