繁体   English   中英

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

[英]How to obtain Signing certificate fingerprint (SHA1) for OAuth 2.0 on Android?

我正在尝试按照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 导出向导)?

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

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

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

在此处输入图片说明

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

对于安卓工作室:

  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 证书密钥。

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

在命令行中使用它

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

打开终端(在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 指纹。

keytool -list -v -keystore "keyStoreName"

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

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

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

在此处输入图片说明

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

keytool命令生成MD5指纹,如果您使用JDK 1.6和它产生SHA1如果使用指纹JDK 1.7

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

如果您想使用google-map请阅读.

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

祝你好运

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

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

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

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

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

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

这将导致以下输出:

在此处输入图片说明

这是我的简单解决方案:

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

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

第1步:

图片第一步

第2步:

图片步骤二

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

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

签约报告

SHA1 显示在消息日志中

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

com.android.application

到密钥库的文件路径:

主页/.android/debug.keystore

我建议debug.keystore附加到 build.gradle。 为此,将文件 debug.keystore 放入应用程序文件夹,然后在 gradle 应用程序中添加 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)

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

在此处输入图片说明

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

1) 打开 cmd 并转到您的 Java/jdk/bin 目录(只需按cd ..返回一个文件夹,然后按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

结果你必须得到这样的东西: 在此处输入图片说明

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

对于安卓工作室:

单击构建 > 生成签名的 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 密钥添加到凭据选项卡中的 google 开发人员控制台,并将 android studio 中的构建变体更改为发布模式。

请单击菜单右侧的 Gradle 然后单击 :app 然后单击 android 文件夹然后 SigningReport 文件名存在那里双击它。 它将开始执行,一段时间后它会向您显示 SHA-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。

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

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

在这之后有两件事可能

  1. 它会要求你输入密码

    只需输入

安卓

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

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

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

sudo apt 安装 openjdk-8-jre-headless

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

这一次,您将进入第 1 步,您只需输入密码即可

安卓

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

如果要从签名 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
.....................

使用portecle

  • 文件 > 打开密钥库文件
  • 输入密钥库密码
  • 右键单击别名 > 证书详细信息 > SHA-1 指纹

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

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

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

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

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

分步解决:

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

    • 要找到 keytool 的位置,请转到 android studio..打开您的项目。 然后去

    • File>project Structure>SDK location..并找到JDK位置。

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

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

这是懒惰程序员的工具:

1 添加依赖:

compile 'com.vk:androidsdk:1.6.9'

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

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

3 打开 logcat 并捕获消息。

4 利润!

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

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

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

如果您仍然遇到问题,则需要先按照此操作:在此处输入链接描述

然后转到 pubspec.yaml 并执行pub upgrade ,然后键入 . /gradlew SigningReport在终端中。 它肯定会奏效!! ..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM