158

我正在尝试按照 https://developers.google.com/console/help/#installed_applications中的步骤注册我的 android 应用程序,这导致我遵循 http://developer.android.com/tools/publishing/app-签名.html

但是,我不确定如何获取签名证书指纹 (SHA1)。

我首先使用 Eclipse ADT 插件来导出和创建密钥库/密钥。然后,我尝试这样做keytool -list keystore mykeystore.keystore,它给了我一个 MD5 证书指纹。我是否需要重做签名(意味着我不能使用 eclipse 导出向导)?

我可以先使用调试证书吗?

4

29 回答 29

175

启动导出过程,为您的应用创建 apk 并使用您的生产密钥。最后一页显示您的 SHA1 和 MD5 证书指纹在此处输入图像描述

于 2013-07-08T07:57:26.527 回答
140

我知道这个问题已经得到解答,但这就是我找到默认密钥库签名的方式。在 Eclipse 中,如果您转到 Windows -> Preferences -> Android -> Build

在此处输入图像描述

于 2013-09-20T17:04:47.213 回答
96

我认为这将完美地工作。我用了同样的:

对于 Android 工作室:

  1. 点击Build > Generate Signed APK
  2. 您将收到一个消息框,只需单击确定。
  3. 现在将有另一个窗口,只需复制Key Store Path
  4. 现在打开命令提示符并转到C:\Program Files\Java\jdk1.6.0_39\bin>(或任何已安装的 jdk 版本)。
  5. 键入keytool -list -v -keystore然后粘贴您的密钥存储路径 (例如 C:\Program Files\Java\jdk1.6.0_39\bin>keytool -list -v -keystore "E:\My Projects \Android\android工作室\签名的 apks\Hello World\HelloWorld.jks")。
  6. 现在它将询问Key Store Password,提供您的密码并按下Enter以获取您的 SHA1 和 MD5 证书密钥。
于 2014-03-26T07:12:06.527 回答
77

如果您使用的是 Mac 甚至 Linux,只需将其复制并粘贴到终端应用程序中,您将立即获得 SHA1 密钥。无需更改任何内容。

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

示例输出:

Alias name: androiddebugkey
Creation date: 17 Feb 12
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4f3dfc69
Valid from: Fri Feb 17 15:06:17 SGT 2012 until: Sun Feb 09 15:06:17 SGT 2042
Certificate fingerprints:
     MD5:  11:10:11:11:11:11:11:11:11:11:11:11:11:11:11:11
     SHA1: 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01:11
     Signature algorithm name: SHA1withRSA
     Version: 3
于 2014-02-06T07:03:29.903 回答
68

在命令行中使用它

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key
于 2013-02-22T19:26:15.683 回答
60

打开终端(在Unix中,在MAC中),(cmdWindows中)和cd这个(你的 java)路径:

C:\Program Files\Java\jdk1.6.0_43\bin>

运行此命令:

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

只需更改路径debug.keystore,您将获得 MD5 和 SHA-1 指纹。

于 2013-04-11T10:31:50.237 回答
41
keytool -list -v -keystore "keyStoreName"

Run this command from the directory where the keystore of your app exists.

于 2013-06-17T04:22:56.760 回答
31

在 Android Studio 中,按照以下步骤操作:

  1. 单击 android studio IDE 右侧的 Gradle 属性菜单。
  2. 展开任务树。
  3. 点击signingReport你可以在底部控制台看到你的SHA1

在此处输入图像描述

于 2016-08-14T06:48:13.423 回答
13

看看你是否想Google Map在那个时候使用你需要MD5指纹来生成api kay在你的 android 应用程序中使用谷歌地图。

如果您使用Keytool 命令生成MD5指纹,如果您使用JDK 1.6它会生成SHA1指纹JDK 1.7

所以问题是,如果您想签署您的应用程序以进行发布,请阅读内容。

如果你想使用google-map阅读这个

于 2012-08-31T11:59:07.430 回答
12

如果您使用的是 IntelliJ(12+?),请转到菜单Build/Generate signed Api

填写弹窗后,获取“key store path”字段中的数据(例如C:\Users\user\Documents\store\store)

并在命令行中运行:

>keytool -list -v -keystore "C:\Users\user\Documents\store\store"

....
         MD5: 11:C5:09:73:50:A4:E5:71:A2:26:13:E0:7B:CD:DD:6B
    -->  SHA1: 07:0B:0E:E8:F7:22:59:72:6A:1C:68:05:05:CF:2E:6F:59:43:48:99
         SHA256: E6:CE:DA:37:C1:18:43:C1:A3:F0:9E:8F:1A:C2:69:AF:E6:41:F7:C0:18:
1D:1D:55:5D:F0:52:6C:EE:77:84:A7
...

祝你好运

于 2013-12-29T03:25:58.380 回答
12

如果有人使用 Android Studio...

点击:Build > Generate Signed in APK 创建一个新密钥:这将生成“.jks”文件

使用以下命令读取数据(SHA1 和其他信息):

$ keytool -list -v -keystore 文件名.jks

于 2014-10-30T11:44:01.470 回答
4

对于使用 OpenSSL 的用户,您可以通过以下方式检索 SHA1 指纹:

OpenSSL> dgst -sha1 my-release-key.keystore

这将导致以下输出:

在此处输入图像描述

于 2013-03-23T02:34:09.053 回答
4

这是我的简单解决方案:

点击Gradle按钮,您可以在右侧顶部找到。你会看到所有的 gradle 文件。现在转到android,双击signingReport。gradle 构建完成后,您会看到 SHA 密钥。检查下面的图像以获取分步指南。

单击 Gradle 后,请检查以下图像。希望这可以帮助某人。

步骤1:

图片第一步

第2步:

图片第二步

于 2017-04-24T12:40:12.333 回答
4

我第一次很困惑,但我建议你为 Windows 提供最终的工作解决方案:

1)打开 cmd 并转到您的 Java/jdk/bin 目录(只需按一下cd ..即可返回一个文件夹并cd NAME_FOLDER向前一个文件夹),在我的情况下,最终文件夹:C:\Program Files\Java\jdk1.8.0_73\bin> 在此处输入图像描述

2)现在输入这个命令keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

结果你必须得到这样的东西: 在此处输入图像描述

于 2017-03-13T09:30:05.260 回答
3

试试这个:Windows----preferences----Android--build---sh1 code copy from here

于 2013-12-18T07:13:32.550 回答
3

如果您使用的是 Android Studio。您可以通过Gradle Tasks快速获取SHA1 证书指纹(调试、发布...所有构建类型!!):

签约报告

SHA1 显示在消息日志中

Android 插件(在 gradle 应用程序中配置)默认创建一个调试模式。

com.android.application

到密钥库的文件路径:

HOME/.android/debug.keystore

我建议debug.keystore 附加到 build.gradle。为此,将文件 debug.keystore 放入 app 文件夹,然后在 gradle app 中添加 SigningConfigs:

apply plugin: 'com.android.application'

    android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
        }    
        ........
    }

额外:如果要创建发布,请将文件 release.keystore 放入应用文件夹。(此示例使用相同的 debug.keystore)

于 2015-06-27T20:35:24.660 回答
3

如果您使用的是 Android Studio。您不需要使用 cmd 提示符生成 SHA1 指纹。您只需要使用 Android Studio 的默认 Maps Activity 创建一个项目。在该项目中,您可以在 Values 文件夹下的 google_maps_api.xml 中获取指纹。希望这会帮助你。:)

在此处输入图像描述

于 2015-09-14T06:42:51.690 回答
2

我认为这将完美地工作。我用了同样的:

对于 Android 工作室:

单击构建 > 生成签名的 APK。您将收到一个消息框,只需单击确定。

现在将有另一个窗口,只需复制密钥存储路径。

现在打开命令提示符并转到 C:\Program Files\Java\jdk1.6.0_39\bin>(或任何已安装的 jdk 版本)。

键入 keytool -list -v -keystore 然后粘贴您的密钥存储路径(例如 C:\Program Files\Java\jdk1.6.0_39\bin>keytool -list -v -keystore "E:\My Projects \Android\android工作室\签名的 apks\Hello World\HelloWorld.jks")。

现在它将询问密钥存储密码,提供您的密码并按 Enter 以获取您的 SHA1 和 MD5 证书密钥。

现在将此 SHA1 密钥添加到凭据选项卡中的谷歌开发人员控制台,并将 android studio 中的构建变体更改为发布模式。

于 2017-02-22T04:30:33.973 回答
2

请从菜单右侧单击 Gradle 然后单击 :app 然后单击 android 文件夹然后 SigningReport 文件名存在那里双击它。它将开始执行,过一会儿它会显示 SHA-1 代码 只需复制代码即可。并将其粘贴到您需要的地方

图像中突出显示的签名报告

于 2020-07-13T14:23:33.933 回答
1

对于那些在 mac 上寻找 keytool 的人。按着这些次序:

首先确保安装 Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

然后在命令提示符中输入:

/usr/libexec/java_home -v 1.7

它会吐出类似的东西:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytool 与javac. IE:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

从 bin 目录中,您可以使用 keytool。

于 2014-02-06T20:38:54.863 回答
1

如果要从签名 keystore.jks 文件中获取指纹 sha1 密钥 从终端运行以下命令:

keytool -list -v -keystore <.../path/keystore.jks>

例子

keytool -list -v -keystore /Users/Home/Projects/Keystore/myApp_keystore.jks
Enter keystore password: 

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name:myApp_alias
Owner: CN=xxx, OU=xxx Dev, O=ZZZ, L=Dhaka, ST=Dhaka, C=BD
..........


Certificate fingerprints:
MD5:  12:10:11:12:11:11:11:11:11:11:33:11:11:11:11:11
SHA1: 11:44:11:11:55:11:17:11:11:66:11:11:88:11:11:77:11:11:01:11
.....................
于 2020-02-23T13:24:57.927 回答
1

如果您使用的是 Mac/Linux,那么您可以通过在终端中写入以下行来获取 SHA1 指纹:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

在此之后有两件事可能

  1. 它会要求你输入密码

    只需键入

安卓

然后按回车,您可以在如下所示的输出中找到 SHA1 密钥。

  1. 它会要求您下载合适的程序(并且会给出一些列表)

    只需在终端中输入以下内容

sudo apt install openjdk-8-jre-headless

然后再次在终端中运行以下命令:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

这一次,您将被引导至第 1 步,您只需输入密码即可

安卓

您将在输出下方获得您的 SHA1 指纹。

于 2018-04-18T09:29:18.903 回答
1
  1. 打开你的命令提示符
  2. 将工作目录导航到 1.8.0/bin
  3. 粘贴keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. 如果它要求您输入密码,请按 Enter
于 2019-11-15T18:38:41.607 回答
0

我想向与我有同样问题的人发布通知。我完成了生成调试 SHA-1 和发布 SHA-1 的步骤。我试图将 Google Sign-In API 与我的应用程序连接起来。

我遇到了调试 .apk 可以正常工作的问题,它可以通过 Google 登录进行连接和身份验证。当手动安装到手机上时,我的版本 .apk 也可以使用。当我将发布的 .apk 发布到 Google Play 商店时,我的 google 登录无法通过身份验证,我会遇到问题!

很长一段时间我都想不通,但我发现我的应用程序正在被谷歌签名,即开发者控制台顶部的消息显示:Google Play App Signing is enabled for this app。

我去了我的发布管理选项卡,然后向下滚动到应用签名,并在那里找到了 SHA-1。在将其添加到我的代码和我用作 Google 登录后端的“firebase 控制台”上后,一切似乎都正常。看起来我的发布密钥库已被谷歌签名证书取代......我不确定这是否正在发生,但它解决了我的问题并允许我的 Google Play 商店发布 apk 正确地通过谷歌签名进行身份验证在!

于 2017-06-20T16:09:19.663 回答
0

使用门禁

  • 文件 > 打开密钥库文件
  • 输入密钥库密码
  • 右键单击别名 > 证书详细信息 > SHA-1 指纹
于 2016-03-19T20:01:46.137 回答
0

在最新版本的 Android Studio 中,获取 SHA-1 密钥的最佳方法是表单终端。Android Studio 北极狐,

  1. 在 Android Studio 中打开终端
  2. 复制命令(keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android)
  3. 将其粘贴到终端并按回车键
于 2021-08-04T14:23:04.130 回答
0

逐步解决方案:

  1. 打开命令提示符或 Mac 终端
  2. 将目录更改为 keytool 文件位置的目录。使用命令更改目录cd <directory path>。(注意:如果任何目录名称有空格,则\在两个单词之间添加。示例cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/

    • 要找到你的 keytool 的位置,你去 android studio..打开你的项目。去

    • 文件>项目结构> SDK位置..并找到JDK位置。

  3. 通过以下命令运行 keytool:( keytool -list -v –keystore <your jks file path>注意:如果任何目录名称有空格,则在两个单词之间添加 \。示例 keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks

  4. 命令提示您输入密码..所以输入您的密码..然后你得到结果

于 2017-08-24T07:37:44.000 回答
0

这是懒惰编码人员的工具:

1 添加依赖:

compile 'com.vk:androidsdk:1.6.9'

2 在您的活动/应用程序的某处添加以下行:

String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName()); 
Log.d("SHA1", fingerprints[0]);

3 打开 logcat 并捕获消息。

4 利润!

于 2018-11-06T14:41:01.640 回答
0

获取用于发布和调试模式 android studio gradle 的 SHA-1 的最简单方法。检查这个

于 2016-11-16T06:24:32.560 回答