我希望将login登录集成到我的Android应用程序中。
为此我需要为linkedin生成调试密钥哈希值
当我检查文档时,他们说要安装openssl并运行命令
keytool -exportcert -keystore %HOMEPATH%\.android\debug.keystore -alias androiddebugkey | openssl sha1 -binary | openssl base64
我尝试在" C:\ OpenSSL-Win64 \ bin"中执行此操作in" cmd"我得到了一个安息: -
'keytool' is not recognized as an internal or external command,
operable program or batch file.
当我在C:\ Program Files \ Java \ jre1.8.0_66 \ bin" cmd&#34中执行此操作时,我收到了回复: -
*username\.android\debug.keystore
keytool -exportcert [OPTION]...
Exports certificate
Options:
-rfc output in RFC style
-alias <alias> alias name of the entry to process
-file <filename> output file name
-keystore <keystore> keystore name
-storepass <arg> keystore password
-storetype <storetype> keystore type
-providername <providername> provider name
-providerclass <providerclass> provider class name
-providerarg <arg> provider argument
-providerpath <pathlist> provider classpath
-v verbose output
-protected password through protected mechanism
Use "keytool -help" for all available commands
2jmj7l5rSw0yVb/vlWAYkK/YBwk=*
如果我执行命令或其他任何事情的命令或位置有任何问题,请指导我...
答案 0 :(得分:5)
为了生成链接的密钥哈希,请按照@Mr Vijay Arora建议的步骤进行操作。
1)从here下载Openssl
。
2)在C盘中创建一个openssl文件夹。
3)将Zip文件解压缩到在C Drive中创建的这个openssl文件夹中。
4)从 .android 文件夹中复制文件debug.keystore
,找到(C:\ Users \ USER_NAME.android)并粘贴到jre \ bin文件夹中。
5)打开命令提示符并给出jre \ bin文件夹的路径,如(C:\ Program Files \ Java \ jre7 \ 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文件这是你的密钥哈希。
或替代流程:
public void generateHashkey(){
try {
PackageInfo info = getPackageManager().getPackageInfo(
PACKAGE,
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
((TextView) findViewById(R.id.package_name)).setText(info.packageName);
((TextView) findViewById(R.id.hash_key)).setText(Base64.encodeToString(md.digest(),
Base64.NO_WRAP));
}
} catch (PackageManager.NameNotFoundException e) {
Log.d(TAG, e.getMessage(), e);
} catch (NoSuchAlgorithmException e) {
Log.d(TAG, e.getMessage(), e);
}
}