力图打造与Facebook整合的Android应用程序,我已经得到了在你生成一个密钥散列文件的文档的一部分,它指定要运行下面的代码
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore
| openssl sha1 -binary
| openssl base64
当我在终端运行此我得到密钥库错误篡改或密码不正确,
我只是想我的生成密钥散列
任何人都可以点我在正确的方向?
删除您的调试证书在〜/ .android / debug.keystore(在Linux和Mac OS X);该目录是类似%USERHOME%/。Android版的Windows。
然后,Eclipse插件应该产生一个新的证书,当你下次尝试建立一个调试包。
让我知道是否可行。
最后 :)
在这里我的故事:
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) {
}
一行溶液以产生用于实
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
为了产生释放密钥哈希你需要遵循一些简单的步骤。
1)下载Openssl
2)使在C驱动器一个OpenSSL的文件夹
3)解压缩zip文件到C盘创建这个OpenSSL的文件夹。
4)复制从.android文件夹中debug.keystore在我的情况下(C:\用户\ SYSTEM.android)并粘贴到JDK bin文件夹在我的情况下(C:\ Program Files文件\的Java \ jdk1.6.0_05 \斌)
5)打开命令提示符,然后给JDK Bin文件夹的路径在我的情况下(C:\ Program Files文件\的Java \ jdk1.7.0_40 \ bin中)。
6)复制下面的代码,然后点击进入
密钥工具-exportcert -alias ABCD-密钥库d:\项目\ MyAppFolder \ keystore.txt | C:\ OpenSSL的\ BIN \ OpenSSL的SHA1 - 二进制| C:\ OpenSSL的\ BIN \ OpenSSL的前的base64 - 密钥工具-exportcert -alias(你唱的apk别名在此输入喜欢我的标志APK阿莲的名字是ABCD)-keystore “签署的apk生成密钥库apth在这里输入” | “OpenSSL的bin文件夹路径在这里输入” SHA1 - 二进制| “OpenSSL的bin文件夹路径在这里输入”的base64
7)现在,你需要输入密码,密码=(这里输入登录密码,密钥库)
8)你有哪些用于发布应用程序密钥散列密钥库
虽然这个线程是旧的,但我想分享我的经验(最近开始与Facebook合作),其直在我看来:
注意!:请更换路径openssl.exe(在本例中为“C:\ OpenSSL的\ BIN \ openssl.exe”)用你自己的安装路径。
输入密钥库密码:机器人
键入Android作为密码如上所示。
而已!您将获得28个字符长的密钥。干杯!
使用同样的方法得到释放键。只是替换为以下命令,并使用您的版本密钥别名。
密钥工具-exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | “路openssl.exe” SHA1 -binary | OpenSSL的BASE64
https://code.google.com/p/openssl-for-windows/downloads/list
public String hashkey(Context context) {
String keyhash = "";
try {
PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 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));
keyhash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
return keyhash;
}
伟大的博客帖子上的主题
从关键名为.p12获取关键散列
适用于Mac和伟大简单的十六进制编辑:HexFiend
OpenSSL的应该在Mac上预装,这里是链接的Windows版本。
keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64
尝试通过密码密钥和存储为命令的一部分
Link
我能在这里做执行与一些解决方案的请求的任务,但心想,男孩说是愚蠢的......为什么不写,这是否一个小的Java代码,并将其装入一个瓶子,所以我做到了。 ..
一个keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
的Jar
适用于Windows 8 ...没有尝试任何其他操作系统。
大家好其我的故事我怎么得到签订了为Facebook的关键
首先你只需要在你的头等舱复制此2种方法
link to download
**呼叫funcation getAppKeyHash()从你的OnCreate梅索德如果你想签名,则散列使签名版本安装已签名的生成和运行你会得到散列键对话框,然后只要注意它,更新它在Facebook上开发的帐户,并评论说,功能和再拍签署APK **
如果您的密码= Android是错误的,那么对我的作品把你的电脑密码。
而对于生成密钥哈希尝试此链接qazxsw POI
为了生成密钥哈希你需要遵循一些简单的步骤。
1)下载Openssl的距离:here.
2)使在C驱动器一个OpenSSL的文件夹
3)解压缩zip文件到C盘创建这个OpenSSL的文件夹。
4)复制从.android文件夹中debug.keystore在我的情况下(C:\用户\ SYSTEM.android)并粘贴到JDK bin文件夹在我的情况下(C:\ Program Files文件\的Java \ jdk1.6.0_05 \斌)
5)打开命令提示符,然后给JDK Bin文件夹的路径在我的情况下(C:\ Program Files文件\的Java \ jdk1.6.0_05 \ bin中)。
6)复制下面的代码,然后点击进入
密钥工具-exportcert -alias androiddebugkey -keystore debug.keystore> C:\ OpenSSL的\ BIN \ DEBUG.TXT
7)现在,你需要输入密码,密码=机器人。
8)如果您在OpenSSL的Bin文件夹看看,你会得到与DEBUG.TXT的名称的文件
9)现在要么你可以重新启动命令提示符或与现有的命令提示符下运行
10)回到C盘,并给OpenSSL的Bin文件夹的路径
11)将以下代码复制并粘贴
OpenSSL的SHA1 -binary DEBUG.TXT> debug_sha.txt
12)你会得到debug_sha.txt OpenSSL中的bin文件夹
13)再次复制下面的代码和糊
OpenSSL的BASE64 -in debug_sha.txt> debug_base64.txt
14)你会得到debug_base64.txt OpenSSL中的bin文件夹
15)开放debug_base64.txt文件这是你的密钥散列。
为我工作的唯一的事情是使用密码 private void getAppKeyHash() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
System.out.println("HASH " + something);
showSignedHashKey(something);
}
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}
}
public void showSignedHashKey(String hashKey) {
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setTitle("Note Signed Hash Key");
adb.setMessage(hashKey);
adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
adb.show();
}
。这是为什么没有任何导游提到了吗?
在科特林用这个日志打印键哈希
Here
根据我的经验,OpenSSL的总是被麻烦,我试图通过Facebook的建议的第二种方法。而且它的美妙。这是获得哈希键的最佳方法。
第二个选择是打印出来送到Facebook的关键字hash并使用该值。进行以下更改到您的主要活动的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
用你自己的包名(在包的Manifest.xml名)更换com.facebook.samples.loginhowto。
官方链接 - https://developers.facebook.com/docs/android/login-with-facebook/(见页面底部)
openssl
openssl
drive C:
文件夹bin
的openssl
即C:\openssl\bin
在命令提示注:在上面的代码需要注意的是,你需要给你的路径,以用户(即在我的情况下,它是C:\用户\ Anhsirk,你只需要更改此为您的用户帐户。
提供密码的android
。如果不问密码密钥库路径不正确。
如果一切正常,它应该给你下面的hashkey。
右键可以从应用程序本身通过将下面的代码来举杯正确的密钥散列来获得(在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) {
}
用你的包名称替换com.package.mypackage
一,创建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) {
}
II。创建Facebook的关键哈希发布
简单的解决方案在那里为这个问题:
我现在已经没有这个问题了两个月。我的钥匙哈希已pyling高达9今天,我终于找到了简单的解决方案:
第1步:
安装您从Facebook开发人员网页下载手机上的Facebook的SDK。鸵鸟政策安装普通的Facebook应用程序。确保您可以登录到Facebook上。然后注销。
第2步:
与你的最终版本主要出口你的应用程序作为一个APK,就像您上传到Play商店中的时候。
第3步:
通过USB数据线或USB记忆棒将APK文件您的手机上。
第四步:
将应用程序安装,使用文件管理器:Example
第5步:
启动您的应用程序,并尝试与Facebook的登录。将打开一个对话框,告诉你:“关键YOURHASHKEY尚未在Facebook的开发者控制台中发现”
第6步:
写下关键。
STEP 7:
把它放进你的Facebook开发者控制台和保存。现在,你就完成了。任何人下载你的应用程序,与以前使用的密钥库公布可以登录到Facebook上。
请享用
最简单的方法来生成散列键。
要求:SHA1关键
您可以通过运行signingReport找到SHA1密钥
请参阅下面的图像。
你运行该文件后,你的输出就会产生含有所需SHA1密钥。
然后转到http://tomeko.net/online_tools/hex_to_base64.php
并粘贴SHA1密钥
最后你会得到所需HashKey。
如果您正在发布,请使用用于您的应用程序与导出密钥库,而不是debug.keystore。
调试证书的密码是Android和Android的不