它说我必须使用keytool来导出我的应用程序的签名,如:。

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

我不知道如何找到keytool,以便运行它。我试着打开Windows命令提示符并粘贴上述命令,但没有成功。

2 个评论
如果你运行的是基于Linux的系统/usr/local/java/bin# ./keytool,如果你运行的是Windowsfind the JDK install path and check bin folder
我找到了这个答案,你可以用它来解决这个问题。stackoverflow.com/a/57390582/13405428
android
windows
facebook
keytool
Nguyen  Minh Binh
Nguyen Minh Binh
发布于 2011-03-30
24 个回答
Nguyen  Minh Binh
Nguyen Minh Binh
发布于 2020-03-18
已采纳
0 人赞同

我自己找到了一个解决方案,如下图所示。它运行良好。

"C:\Program Files\Java\jdk1.6.0_26\bin\keytool.exe" -exportcert -alias
> sociallisting -keystore "D:\keystore\SocialListing"  |
> "C:\cygwin\bin\openssl.exe" sha1 -binary | "C:\cygwin\bin\openssl.exe"
> base64
    
我在这里找到了它。C:\Program Files\Javajre1.8.0_111\bin\keytool.exe
或C:\Program Files\Android Studio\jre\bin
谢谢@SHAHM:对我们这些不想再明确下载Java并每周被烦扰升级到最新版本的人来说,这是件好事。
我发现,只有keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore对我有用。发现here from Google :)
对于 "在这里发现 "的@JaimeMontoya的评论作为补充。把keytool.exe的目录添加到你的PATH中。这将使你的生活变得更容易。
remix090378
remix090378
发布于 2020-03-18
0 人赞同

只需在Windows命令提示符中输入这些内容。

cd C:\Program Files\Java\jdk1.7.0_09\bin
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\userName\.android\debug.keystore" -list -v

基础密码是android

你会看到MD5SHA1SHA256键;选择你需要的一个。

Broo
这对我来说很有效。对于调试键,使用-alias androiddebugkey。
我对发布版本使用了下一行:1)cd C:\Program Files\Java\jdk1.8.0_162\bin,然后2)keytool -list -v -keystore "C:\AndroidProjects\Project1\app\myapp.keystore"
keytool error: java.lang.Exception: Only one command is allowed: both -exportcert and -list were specified.
noelyahan
noelyahan
发布于 2020-03-18
0 人赞同

要获得安卓钥匙的哈希代码,请按照以下步骤进行(对于Facebook应用程序)。

  • Download the openssl for windows here
  • now unzip to c drive
  • open cmd prompt
  • type cd C:\Program Files\Java\jdk1.6.0_26\bin
  • then type only keytool -export -alias myAlias -keystore C:\Users\<your user name>\.android\myKeyStore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e
  • 要获得证书指纹(MD5)代码,请遵循以下步骤

  • go to - C:\Program Files\Java\jdk1.6.0_26\bin
  • inside the bin folder run the jarsigner.exe file
  • open cmd prompt
  • type cd C:\Program Files\Java\jdk1.6.0_26\bin
  • then again type on cmd keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  • it will ask for Keystore password now. The default is "android" type and enter
  • Done.
  • 这对我来说是有效的,直到最后一步。在输入 "android "后,它吐出的是垃圾......我猜它没有使用正确的编码?如果我输入类似 "blah "的东西,它会告诉我密码不正确。因此,当我输入 "android "时,它知道我的密码是正确的。
    我发现问题出在我漏掉了-list和-v两个标志。
    Robby Pond
    Robby Pond
    发布于 2020-03-18
    0 人赞同

    keytool是JDK的一部分。

    尝试将%{JAVA_HOME}\前置到exec语句或c:\{path to jdk}\bin

    我把cer文件和truststore文件放在同一个目录下,用这个命令。【替换代码0
    Gareth
    Gareth
    发布于 2020-03-18
    0 人赞同

    我在另一个帖子上发现了这个,虽然没有得到很多人的支持,但对我来说是超级有帮助的。所以我把它加到这里。

    安卓工作室将带来一个钥匙工具。

    C:\Program Files\Android\Android Studio\jre\bin

    你可以看到他下面Richar Heap的帖子,有一个有用的参考。我以前确实看到过这个,但是忘记了。https://stackoverflow.com/a/51524526/4446406

    Chris Cashwell
    Chris Cashwell
    发布于 2020-03-18
    0 人赞同

    KeyTool是JDK的一部分。假设你以默认设置安装了JDK,你会在$JAVA_HOME/bin中找到它。

    Alexei - check Codidact
    Alexei - check Codidact
    发布于 2020-03-18
    0 人赞同

    Robby Pond的答案可以概括为使用JAVA_HOME环境变量,并且还可以补偿路径中可能出现的任何空白(如Program Files)。

    "%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
        
    James.Xu
    James.Xu
    发布于 2020-03-18
    0 人赞同

    keytool是jdk的一部分,它应该是$JAVA_HOME/bin/keytool。

    Roman Mazur
    Roman Mazur
    发布于 2020-03-18
    0 人赞同

    keytool 位于 JDK 的 bin 目录中 ($JAVA_HOME/bin)。JAVA_HOME 是你的 JDK 安装目录。 要使用该命令行,你还应将 $JAVA_HOME/bin 加入你的 PATH 环境变量。

    2bard
    2bard
    发布于 2020-03-18
    0 人赞同

    Keytool是Java SDK的一部分。你应该能在你的Java SDK目录中找到它,例如:C:\Program Files\Java\jdk1.6.0_14bin\

    Jenna Leaf
    Jenna Leaf
    发布于 2020-03-18
    0 人赞同

    在cmd窗口(需要以管理员身份运行)。

    cd %JAVA_HOME% 
    

    只有在你已经设置了系统环境变量 JAVA_HOME 的情况下才会起作用。要为你的路径设置系统变量,你可以这样做

    setx %JAVA_HOME% C:\Java\jdk1.8.0_121\
    

    然后,你可以输入

    cd c:\Java\jdk1.8.0_121\bin
    
    cd %JAVA_HOME%\bin
    

    然后,执行JAVA jdk提供的任何命令,如

    keytool -genkey -v -keystore myapp.keystore -alias myapp
    

    你只需回答问题(相当于在cmd行上输入数值),然后点击回车键密钥将被生成

    0 人赞同

    安卓:在安卓中运行keytool命令的地方

    如果JRE已经在你的classpath变量中被设置,Keytool命令可以在你的dos命令提示符下运行。

    例如,如果你想获得android的SDK调试证书的MD5指纹。

    只需运行以下命令...

    C:\Documents and Settings\user\.android>  keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
    

    其中C:\Documents and Settings\user\.android>是包含了需要认证的debug.keystore的路径。

    详细资料请访问http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint

    GraSim
    GraSim
    发布于 2020-03-18
    0 人赞同

    Depending on your version of Eclipse ( I am using Kepler). Go to Windows> Preferences>Android> Build.

    你会发现你的调试钥匙库的位置路径,以及SHA1指纹(你可以直接复制并使用)。

    Nieminen
    Nieminen
    发布于 2020-03-18
    0 人赞同

    如果你安装了支持Xamarin/移动开发的visual studio,你会在这里安装一个java C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\,我的情况就是这样。

    suba
    suba
    发布于 2020-03-18
    0 人赞同

    KEYTOOL在JAVAC SDK中,所以你必须在包含以下内容的目录中找到它javac

    Tide
    Tide
    发布于 2020-03-18
    0 人赞同

    除了加雷思的

    在上述答案中,以下内容对我有用

    只需在Windows命令提示符中输入这些内容。

    确保终端是以管理员身份运行的

  • cd C:\Program Files\Android\Android Studio\jre\bin

  • keytool -list -v -keystore "C:\Users\admin.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

    阅读more

    注:B:这应该在第一次构建后进行,因为钥匙只在第一次构建后生成。

  • Matthew Willis
    Matthew Willis
    发布于 2020-03-18
    0 人赞同

    替换代码0】是随JDK而来的。如果你使用 cygwin,那么这可能已经在你的路径上了。否则,你可以在你的JDK的bin文件夹中挖掘。

    你可能需要使用cygwin来使shell管道(|)工作。

    你能告诉我如何运行以下命令吗? keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
    是的,我做了。当我运行上述命令时,CMD说:'openssl'没有被识别为内部或外部命令、可操作程序或批处理文件。
    你可能还需要通过 cygwin 的设置来安装 openssl 包。
    我已经安装了openssl软件包。问题仍然发生:(
    你能自己运行openssl吗?当你输入 "open "并按tab键时,你会看到哪些选项?
    Zeena
    Zeena
    发布于 2020-03-18
    0 人赞同

    在我遇到同样的问题时,有几个观察结果(Windows)。 1.壳管是很重要的。 2.如果你使用OpenSSL或Cygwin,你肯定要安装它。 3.keytool是和JDK一起的,所以你必须在命令中指向它,或者你必须cd到JDK/bin文件夹(exe所在的位置)。 4.调试密钥库通常位于~/.android/debug.keystore。 5.密码是 "android",无论你是-keypass它还是在提示时输入它。 6.对于别名,你可以用任何编辑器打开(不要保存,只是打开和关闭)keystore文件并读取它。 7.最重要的是--在引号内和不在引号内指定keystore路径是有区别的。我通过使用双引号内的keystore路径得到了它的工作。 正如remix090378所说,并按照instruction cd C:\Program FilesJava\jdk1.7.0_09\bin

    keytool -exportcert -alias androiddebugkey -keystore "C:\Users\userName.android\debug.keystore" -list -v

    Devner
    Devner
    发布于 2020-03-18
    0 人赞同

    在我的案例中,我已经使用ionic cordova build android --prod命令生成了一个APK文件,我需要获得已经存在的APK文件的SHA-1指纹。下面是我如何在App目录下运行以下命令得到的。

    keytool -list -printcert -jarfile app-debug.apk

    所以,我基本上是在以下应用位置运行上述命令。

    C:\myApp\platforms\android\app\build\outputs\apk\debug>keytool -list -printcert -jarfile app-debug.apk

    这给我的SHA1指纹是。【替换代码3

    Hope this helps someone!

    Céphas
    Céphas
    发布于 2020-03-18
    0 人赞同

    或者,你可以做以下事情。

  • copy the bat file below in any folder already present in your PATH environment variable
  • then simply use keytool command in any Windows shell
  • keytool的实际位置在bat文件中定义。如果位置不对,bat文件将扫描你的系统,检测ProgramFiles(子)文件夹中的潜在位置。

    还可以找到keytool2.bat,这是 "keytool -v -list -keystore "的一个令人信服的快捷方式,它被广泛用于快速检查jks文件的内容。

    keytool.bat 。

    :: "keytool alias" script by Céphas :: easy method : add the known keytool.exe folder to your personal PATH variable (run : C:\Windows\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables) :: else, add the folder containing this bat script to your personal path or put this script in any folder already defined in your path :: also see keytool2.bat that automatically adds the following parameters in the keytool command line : -v -list -keystore, for quick display of jks content @echo off set THIS_SCRIPT=%~f0 rem setlocal enableDelayedExpansion : necessary for paths containing special chars setlocal enableDelayedExpansion rem set PATH to keytool.exe ; path must include the final \ rem ^ is escape char for paths containing & \ < > ^ | set PATH_TO=C:\Program Files\Java\jre1.8.0_45\bin\ set PROG_NAME=keytool.exe rem full_path, with "", to work with paths containing special chars set FULL_KT_PATH="!PATH_TO!!PROG_NAME!" rem checks if keytool.exe exists (dir %FULL_KT_PATH%>nul 2>nul && set KT_FOUND=yes) || set KT_FOUND=no if %KT_FOUND%==yes ( rem keytool found => launching it with all supplied parameters %FULL_KT_PATH% %* ) else ( rem keytool not found, trying to find it in %ProgramFiles% echo. echo Keytool not found in expected location, scan in progess ... echo. cd "%ProgramFiles(x86)%" 2>nul && dir /B /S keytool.exe 2>nul cd "%ProgramFiles%" 2>nul && dir /B /S keytool.exe 2>nul echo. echo ********* echo Path to program keytool.exe not properly defined, or keytool/java missing on this system echo If any location has been found during above scan, fix variable "PATH_TO" in %THIS_SCRIPT% accordingly echo ********* echo. pause

    keytool2.bat 。

    :: "keytool2 alias" script by Céphas :: easy method : add the known keytool.exe folder to your personal PATH variable (run : C:\Windows\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables) :: else, add the folder containing this bat script to your personal path or put this script in any folder already defined in your path :: keytool2 automatically adds the following parameters in the keytool command line : -v -list -keystore :: thus, to quickly display the full content of a jks file, usage is simply : keytool2 \path\to\your\keystore.jks [-alias your_alias] @echo off set THIS_SCRIPT=%~f0 rem setlocal enableDelayedExpansion : necessary for paths containing special chars setlocal enableDelayedExpansion rem set PATH to keytool.exe ; path must include the final \ rem ^ is escape char for paths containing & \ < > ^ | set PATH_TO=C:\Program Files\Java\jre1.8.0_45\bin\ set PROG_NAME=keytool.exe rem full_path, with "", to work with paths containing special chars set FULL_KT_PATH="!PATH_TO!!PROG_NAME!" rem checks if keytool.exe exists (dir %FULL_KT_PATH%>nul 2>nul && set KT_FOUND=yes) || set KT_FOUND=no if %KT_FOUND%==yes ( rem keytool found => launching it with all supplied parameters %FULL_KT_PATH% -v -list -keystore %* ) else ( rem keytool not found, trying to find it in %ProgramFiles% echo. echo Keytool not found in expected location, scan in progess ... echo. cd "%ProgramFiles(x86)%" 2>nul && dir /B /S keytool.exe 2>nul cd "%ProgramFiles%" 2>nul && dir /B /S keytool.exe 2>nul echo. echo ********* echo Path to program keytool.exe not properly defined, or keytool/java missing on this system echo If any location has been found during above scan, fix variable "PATH_TO" in %THIS_SCRIPT% accordingly echo ********* echo. pause
    kidroca
    kidroca
    发布于 2020-03-18
    0 人赞同

    On Windows

    如果你使用Jetbrain的工具箱来管理Android Studio的更新,其路径是这样的

    C:\Users\{USERNAME}\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\202.7486908\jre\bin 
    

    更新后,我必须手动更新/设置此路径为JAVA_HOME(jre文件夹)。

    Nata Anthony
    Nata Anthony
    发布于 2020-03-18
    0 人赞同

    考虑将PATH添加为环境变量,并通过cmd访问它。

    PATH为值,C:\Program Files\Java jre1.8.0_331\bin为变量,通过keytool访问它 ...

    Prem
    Prem
    发布于 2020-03-18
    0 人赞同

    #进入cacerts或jsk所在的路径,在cmd上打开并运行以下命令

    Keytool -v -list -keystore cacerts

    keytool -v -list -keystore .jks

    用户不知道如何找到keytool,以便运行它。请在答案中包括这一点。
    Christos Alexiou
    Christos Alexiou
    发布于 2020-03-18
    0 人赞同