如何在Android上获取OAuth 2.0的签名证书指纹(SHA1)?

时间:2012-08-31 11:32:08

标签: android oauth-2.0

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

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

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

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

28 个答案:

答案 0 :(得分:173)

启动导出过程,为您的应用创建apk并使用您的生产密钥。最后一页显示SHA1和MD5证书指纹enter image description here

答案 1 :(得分:138)

我知道这个问题已经得到解答,但这就是我找到默认密钥库的签名的方式。在Eclipse中,如果你去Windows - >偏好 - > Android - >构建

enter image description here

答案 2 :(得分:86)

我认为这将完美无缺。我使用了同样的东西:

对于Android Studio:

  1. 点击构建> 生成签名APK
  2. 您将看到一个消息框,只需单击“确定”。
  3. 现在将有另一个窗口,只需复制密钥库路径
  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 studio \ signed apks \ Hello World \ HelloWorld.jks")。
  6. 现在它将询问密钥库密码,提供您的 kbd> Enter 以获取SHA1和MD5证书密钥。

答案 3 :(得分:67)

在命令行中使用它

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key

答案 4 :(得分:63)

如果您使用的是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

答案 5 :(得分:57)

打开终端(在 Unix ,在 MAC 中),( Windows 中的cmd)和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指纹。

答案 6 :(得分:38)

keytool -list -v -keystore "keyStoreName"

从应用程序密钥库所在的目录运行此命令。

答案 7 :(得分:15)

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

  1. 点击android studio IDE右侧的Gradle properties菜单。
  2. 展开任务树。
  3. 点击signingReport 您可以在底部控制台上看到SHA1
  4. enter image description here

答案 8 :(得分:13)

在您的Android应用中使用谷歌地图时,看看您是否想要Google Map使用MD5指纹来生成api kay

如果您使用MD5

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

所以,如果您想签署申请以进行发布,请阅读this

如果您想使用google-map阅读this

答案 9 :(得分:12)

如果您使用的是IntelliJ(12+?),请转到菜单构建/生成已签名的Api

填写弹出窗口后,在“密钥库路径”字段中获取数据(例如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
...
祝你好运

答案 10 :(得分:12)

如果有人使用Android工作室...

点击:构建>生成签名APK 创建一个新密钥:这将生成“.jks”文件

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

$ keytool -list -v -keystore filename.jks

答案 11 :(得分:4)

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

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

这会产生以下输出:

enter image description here

答案 12 :(得分:3)

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

  

signingReport

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放入app文件夹。 (此示例使用相同的debug.keystore)

答案 13 :(得分:3)

以下是我的简单解决方案:

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

点击Gradle后,请检查以下图片。希望这有助于某人。

第1步:

Image Step one

第2步:

Image Step two

答案 14 :(得分:3)

我第一次感到很困惑,但我建议你最终解决方案 适用于Windows:

1)打开cmd并转到Java / jdk / bin目录(只需按cd ..返回一个文件夹,cd NAME_FOLDER向前移动一个文件夹),在我的情况下,最终文件夹: C:\Program Files\Java\jdk1.8.0_73\bin> enter image description here

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

结果你必须得到这样的东西: enter image description here

答案 15 :(得分:3)

试试这个: Windows ----首选项---- Android - build --- sh1代码拷贝从这里开始

答案 16 :(得分:2)

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

Signing Report Highlighted in Image

答案 17 :(得分:1)

我认为这将完美无缺。我使用了同样的东西:

对于Android Studio:

点击Build>生成签名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 studio \ signed apks \ Hello World \ HelloWorld.jks“)。

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

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

答案 18 :(得分: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位于同一目录中。即:

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

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

答案 19 :(得分: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
.....................

答案 20 :(得分:1)

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

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

此后有两件事可能

  1. 它会要求您输入密码

    只需输入

  2. 即可
      

    机器人

    然后按回车键,您可以在下面显示的输出中找到SHA1键。

    1. 它会要求你下载一个合适的程序(有些列表会 给予)

      只需在终端

    2. 中输入以下内容即可
        

      sudo apt install openjdk-8-jre-headless

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

      这一次,您将进入第1步,您需要输入密码

        

      机器人

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

答案 21 :(得分:0)

在最新版本的 Android Studio 中,获取 SHA-1 密钥的最佳方式是表单终端。 Android Studio Arctic FOX,

  1. 在 Android Studio 中打开终端
  2. 复制 命令(keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android)
  3. 将其粘贴到终端上并按回车键

答案 22 :(得分:0)

  1. 打开命令提示符
  2. 将工作目录导航到1.8.0 / bin
  3. 粘贴keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. 如果要求您输入密码,请按Enter键

答案 23 :(得分:0)

这是惰性编码器的工具:

1添加依赖项:

compile 'com.vk:androidsdk:1.6.9'

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

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

3打开logcat并捕获消息。

4个利润!

答案 24 :(得分:0)

逐步解决方案:

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

    • 要找到你的keytool的位置,你去android studio..open你的项目。然后转到

    • 文件&gt;项目结构&gt; 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. 命令提示您输入密码..所以输入密码..然后你得到结果

答案 25 :(得分:0)

我想向那些与我有同样问题的人发布通知。我完成了生成调试SHA-1和发布SHA-1的步骤。我试图将Google Sign-In API与我的应用相关联。

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

最长的时间我无法弄明白,但我发现我的应用程序是由谷歌签署的,即开发者控制台顶部的消息显示: Google Play App Signing已启用此应用。

我转到了我的版本管理选项卡,然后向下滚动到App Signing,在那里找到了SHA-1。将此添加到我的代码和&#34; firebase控制台&#34;我用它作为Google登录的后端,一切似乎都有效。看起来我的发布密钥库被google签名证书取代了...我不确定这是不是发生了什么,但它解决了我的问题,并允许我的Google Play商店发布apk正确验证谷歌登录!

答案 26 :(得分:0)

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

答案 27 :(得分:0)

使用portecle

  • 文件&gt;打开密钥库文件
  • 输入密钥库密码
  • 右键点击别名&gt;证书详情&gt; SHA-1指纹