Android使用命令获取sha1证书指纹数据的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android使用命令获取sha1证书指纹数据的方法相关的知识,希望对你有一定的参考价值。

参考技术A android开发中,经常要获取sha1证书指纹。
例如:在嵌入高德地图的时候,就需要使用这个东东。
这个东东在Eclipse中可以直接获取到,但是在AndroidStudio中,
并没有直接提供,需要通过别的手段手动获取。
我们可以使用 Java 的一个工具: keytool 来获取这个值。
keytool 是jdk提供的一个工具,只要你的java环境变量配置的ok,
直接在命令行输入 keytool 就可以执行这个命令。
获取sha1的命令为:

具体获取方法,看下图:

密钥库证书的 SHA-1 指纹

【中文标题】密钥库证书的 SHA-1 指纹【英文标题】:SHA-1 fingerprint of keystore certificate 【发布时间】:2013-03-21 14:39:19 【问题描述】:

获取SHA-1指纹的方法和获取指纹的方法一样吗?以前,我正在运行这个命令:

我不清楚我得到的结果是否是 SHA-1 指纹。有人可以澄清一下吗?

【问题讨论】:

希望此链接对您有所帮助。 ***.com/questions/12214467/… 获取 SHA-1 用于发布和调试模式 android studio gradle 的最简单方法。 Check this 在终端中运行此命令:keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore。它将询问您的密钥库密码。您可以从 android/keystore 文件夹中名为“debug.keystore.properties”的文件中找到它 youtube.com/watch?v=CPAxGzZ4pi8 【参考方案1】:

我有一个简单的答案。 要在新的 Android Studio 版本中找到 SH1,请执行以下简单步骤

第一步进入设置,也可以按ctrl + alt + s

第 2 步转到 Experimental,然后取消勾选名为 Do not build Gradle task during Gradle sync 的选项,然后按确定

步骤 3 转到 File 然后选择 Sync Project with Gradle files

步骤 4 点击面板右侧的 Gradle,然后点击 Tasks,然后点击 android,然后双击签名报告

然后你得到 SH1 指纹

【讨论】:

【参考方案2】:

在最近更新的 Android Studio 4.2 中,我们无法获取文件:签名报告。所以,我们可以通过以下步骤再次得到它:

File -> Settings -> Experimental -> 
Now we need to uncheck the *do not build Gradle list during Gradle sync* ->
Click Ok -> now again go to File -> Click on *Sync Project with Gradle files*

现在您可以关注其他答案了。

感谢@PapayaCoders Youtube 频道解决了这个问题。这是关于这个问题的link of the video。

【讨论】:

【参考方案3】:

对于 Android Studio 4.2 及更新版本,请按照以下步骤生成 SHA Key。这些图片中给出了步骤。

步骤:-

1) 点击gradleAndroid Studio 的右上角。正如你在这张图片中看到的那样。

2) 现在点击图标,如下图所示。将打开一个新的可搜索窗口/屏幕

3) 现在输入,gradle signingreport 并按 Enter 开始生成 SHA KEY 如下图所示。

4) 您的 SHA 密钥 将生成,如图所示。使用这些步骤,您可以在 Android Studio 4.2 中生成 SHA KEY。

【讨论】:

得到错误丢失密钥库 @Adnanhaider 您是否仔细尝试了所有步骤?它在最新版本的 android studio 中有效。如果您使用的是旧版本,请打开 gradle,然后打开应用程序,然后打开 android,最后单击签名报告 我的错误是我使用了发布配置,这就是我出错的原因。现在它工作正常谢谢【参考方案4】:

简单的方法 - 使用密钥库浏览器

按照步骤进行

    下载密钥库浏览器Download link 安装密钥库浏览器 通过密钥库浏览器打开密钥库 输入密码 单击您的密钥库名称 然后您将获得 sha1 密钥

【讨论】:

【参考方案5】:

按照this 为 Google Map v2 创建 SHA1 指纹的教程

对于调试模式:

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

对于发布模式:

keytool -list -v -keystore keystore_name -alias alias_name

示例:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

在 Windows 上,当 keytool 命令未找到时,转到您安装的 JDK 目录,例如<YourJDKPath>\Java\jdk1.8.0_231\bin\,打开命令行并尝试上述命令进行调试/发布模式。

获取 SHA1 或 SHA-256 的另一种方法是使用 ./gradlew signingReport

欲了解更多详细信息,请访问 Using Gradle's Signing Report

【讨论】:

~/ 是您在 *nix 系统中的主目录。在 Windows 下,只需使用 %USERPROFILE% 如果您在 Xamarin 上编写 Android 应用程序,请使用:keytool -list -v -keystore "%USERPROFILE%\AppData\Local\Xamarin\Mono for Android/debug.keystore" -alias androiddebugkey -storepass android -keypass android 如何获取发布版 sha1。我从我的 app.jks 获取它,但 console.google 显示它已被使用。 $ keytool -list -v -keystore ~/.android/debug.keystore -storepass android only 这个也可以 看这个以使用 android studio 获取 SHA-1 密钥。 easybook4u.com/index.php/2017/08/25/…【参考方案6】:

[![更改构建变体然后你可以看到运行应用程序会导致错误

您必须找到发布密钥的 SHA1 代码并在您的开发者控制台中输入它。 (对我来说,开发者控制台是 firebase,有些人可能会使用不同的服务)查找 SHA1 代码。简单的方法是

Go to Build --- Select Build Variant -- 在左侧选择 "Release" 作为 build variant -- 现在进入模块设置(或者尝试运行项目,android studio 会告诉你一个错误并点击修复错误按钮)---选择签名选项卡---添加你的发布密钥和密码——现在转到构建类型——选择发布——在签名配置上选择你的发布密钥配置——现在运行你的项目——现在运行你的签名报告 --- 你可以在 release build 下找到 SHA1 -- 在你的开发者控制台上输入那个 sha1 代码

【讨论】:

【参考方案7】:

截至Sept 2020,如果您想获取Release密钥库证书的SHA-1 指纹。只需打开您的 Google Play Developer Console 并打开 App Signing 选项卡。

【讨论】:

【参考方案8】:

如果你使用 React Native,debug.keystore 位于 android/app,但可能不在 ~/.android

设置debug.keystore路径如下:

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

控制台将打印如下内容:

Alias name: androiddebugkey
Creation date: Jan 1, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, OU=Android, O=Unknown, L=Unknown, ST=Unknown, C=US
Issuer: CN=Android Debug, OU=Android, O=Unknown, L=Unknown, ST=Unknown, C=US
Serial number: 2==Serial Number==2
Valid from: Wed Jan 01 06:35:04 CST 2014 until: Wed May 01 06:35:04 CST 2052
Certificate fingerprints:
     SHA1: 5E:=========== SHA1 SIGNING KEY ===========:25
     SHA256: FA:============ SHA 256 ===================9C
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

【讨论】:

【参考方案9】:

第 1 步: 首先在 Windows 电脑中找到 JDK 的 bin 文件夹。见下图。

我的是:

C:\Program Files\Java\jdk1.8.0_131\bin

第 2 步:现在通过在 Windows 10 搜索栏中输入 "cmd" 来搜索 命令提示符。然后以管理员模式打开命令提示符。 见下图:

第 3 步:现在复制此路径并将其输入到命令提示符中

 C:\Program Files\Java\jdk1.8.0_131\bin

在命令提示符中:

cd C:\Program Files\Java\jdk1.8.0_131\bin

按下 Enter 按钮后,您将进入 bin 文件夹。

您的设置已完成。现在为发布模式生成 SHA1 密钥。

释放 SHA1 密钥:

keytool -list -v -keystore C:\Users\Turzo\Desktop\earninglearning.keystore -alias turzo -storepass 12345678 -keypass 12345678

【讨论】:

截图很有帮助 这是一个非常漫长的过程。【参考方案10】:

此解决方案适用于android studio 3.5版本:

    在 Android Studio 中打开您的项目。 点击右侧的 Gradle 选项卡。 将看到两件事,一是我们的项目(根)和应用程序。 根据您的情况选择我们的项目,它可能是您的应用程序。 右键单击项目并刷新它。 然后点击项目 drop don 按钮。 点击将看到android文件夹的任务。 双击signingReport,将在运行控制台中看到详细信息。

【讨论】:

【参考方案11】:

如果你没有密钥库和别名,你可以使用这个命令:

keytool -list -printcert -jarfile app.apk

【讨论】:

【参考方案12】:

右侧 Gradle --> 签名项目获取所有密钥

【讨论】:

【参考方案13】:

我在使用命令打开时遇到了问题

[keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test]

因此,我下载了https://sourceforge.net/projects/portecle/。 然后从 jar 程序中打开 .jks 文件。它会显示所有相关信息

【讨论】:

谢谢,拯救了我的一天【参考方案14】:

这是对我有用的逐步过程。

首先运行应用程序,然后按照以下步骤操作(也显示在屏幕截图中)

    点击签名报告 打开 gradle 控制台对话框 它应该显示您的 SHA-1 证书编号

【讨论】:

真正的救世主!我不知道为什么从命令提示符和 android studio 生成的 SHA-1 密钥不同。 它显示 sha1 进行调试,发布版本也一样吗? @SanketPatel 你有发布版 SHA1 吗? 不,实际上我解决了我的问题,所以停止搜索它@Oliver【参考方案15】:

在您的应用中使用 Google Play 应用签名功能和 Google API 集成?

    如果您使用的是 Google Play 应用签名,请不要忘记 Google API 凭据所需的发布签名证书指纹不是您通过此方法从您的应用获取的常规上传签名密钥 (SHA-1):李>

    您只能从 Google Play 控制台的应用签名页面获取您的发行版 SHA-1,如下所示:-

如果您使用 Google Play 应用签名,Google 会重新签署您的应用。这就是您的签名证书指纹由 Google Play App Signing 提供的方式,如下所示:

阅读更多How to get Release SHA-1 (Signing-certificate fingerprint) if using 'Google Play app signing'

【讨论】:

【参考方案16】:

除了Lokesh Tiwar's answer

对于发布版本,在 gradle 中添加以下内容:

android 

defaultConfig
//Goes here


    signingConfigs 
        release 
            storeFile file("PATH TO THE KEY_STORE FILE")
            storePassword "PASSWORD"
            keyAlias "ALIAS_NAME"
            keyPassword "KEY_PASSWORD"
        
    
buildTypes 
        release 
            zipAlignEnabled true
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


现在按照 Lokesh 的回答运行 signingReport 将显示发布版本的 SHA 1 和 MD5 密钥。

【讨论】:

你是老板!! :)【参考方案17】:

如果您使用 Google Play App Signing,而不是从密钥库获取 SHA,更简单的方法是转到 Google Play 控制台 > 您的应用 > 发布管理 > 应用签名并查找您的上传证书。

【讨论】:

这里显示 2 个登录证书 appsignin 和上传的 signincertificates。我需要使用哪个来发布 要发布,您需要使用应用签名证书【参考方案18】:

如果您使用的是 android studio,请使用简单的步骤

    运行您的项目 点击 Gradle 菜单 扩展 Gradle Tasks 树 双击android -> signingReport 看看魔法 它会告诉您“运行”选项卡上的所有内容

运行选项卡下的结果如果 Android Studio

来自 android studio 2.2 结果将在运行控制台下可用,但使用突出显示的切换按钮

或者 第二种方式是 在 android studio New -> Google Maps Activity 中创建新项目

然后打开 google_maps_api.xml xml 文件,如图所示,您将看到您的 SHA 密钥

【讨论】:

我的“gradle 项目”窗口是空的……有什么想法吗? 在模拟器或设备上运行项目后就会出现 是的,我试过了,但什么也没发生。就我而言,似乎我必须在出现任何内容之前按下“刷新”按钮! 它现在出现在 Android studio 2.2.3 的“Gradle Console”选项卡下 我已按照此答案中的步骤操作,效果很好。但是如何将 Gradle 设置更改回原来的设置,以便当我单击 Android Studio 中的 Run 按钮时,它会像以前一样在我的设备/模拟器上安装并运行该应用程序?【参考方案19】:

与您的用户一起尝试并通过

keytool -list -v -keystore jks 文件路径 -alias keyname -storepass keypassword -keypass aliaspassword

exe

keytool -list -v -keystore "E:\AndroidStudioProject\ParathaApp\key.jks" -alias key0 -storepass mks@1 -keypass golu@1

【讨论】:

【参考方案20】:

//获取SHA1的最简单方法

//将以下命令添加到您的终端并回车

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

【讨论】:

【参考方案21】:

请参考下图获取SHA-1密钥

【讨论】:

同意:最佳选择。 “加号”之一。我错过了更多的文本信息,但是您显示的主要路径。谢谢。 1)你必须双击文件名。【参考方案22】:

在 Windows 中打开命令提示符并转到以下文件夹。

C:\Program Files\Java\jdk1.7.0_05\bin

使用命令cd <next directory name> 将目录更改为下一个。 使用命令cd .. 将目录更改为 Prev

现在按原样输入以下命令:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

【讨论】:

在与这个问题斗争了几个小时之后,您的回答挽救了我的应用程序的生命。谢谢!!!!【参考方案23】:

我使用的是 Ubuntu 12.0.4,并且我已经以这种方式获取证书指纹,以便在命令提示符下发布密钥存储 生成密钥库文件后,您可以将此密钥用于发布的应用程序,如果您在应用程序中使用谷歌地图,这样可以在发布后在应用程序内正确显示地图,我在下面的命令提示符下得到结果

administrator@user:~$ keytool -list -v -keystore /home/administrator/mykeystore/mykeystore.jks -alias myprojectalias

 
Enter keystore password:  ******

Alias name: myprojectalias

Creation date: 22 Apr, 2014

Entry type: PrivateKeyEntry

Certificate chain length: 1
Certificate[1]:
Owner: CN=xyz, OU= xyz, O= xyz, L= xyz, ST= xyz, C=91
Issuer: CN= xyz, OU= xyz, O= xyz, L= xyz, ST= xyz, C=91

Serial number: 7c4rwrfdff
Valid from: Fri Apr 22 11:59:55 IST 2014 until: Tue Apr 14 11:59:55 IST 2039

Certificate fingerprints:
     MD5:  95:A2:4B:3A:0D:40:23:FF:F1:F3:45:26:F5:1C:CE:86
     SHA1: DF:95:Y6:7B:D7:0C:CD:25:04:11:54:FA:40:A7:1F:C5:44:94:AB:90
     SHA276: 00:7E:B6:EC:55:2D:C6:C9:43:EE:8A:42:BB:5E:14:BB:33:FD:A4:A8:B8:5C:2A:DE:65:5C:A3:FE:C0:14:A8:02
     Signature algorithm name: SHA276withRSA
     Version: 2

Extensions: 

 ObjectId: 2.6.28.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1E A1 57 F2 81 AR 57 D6   AC 54 65 89 E0 77 65 D9  ..W...Q..Tb..W6.
0010: 3B 38 9C E1             

在 Windows 平台上,我们可以通过以下方式获取调试模式的密钥库

C:\Program Files\Java\jdk1.8.0_102\bin>keytool -l
.android\debug.keystore -alias androiddebugkey -s
id
Alias name: androiddebugkey
Creation date: Oct 21, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: C=US, O=Android, CN=Android Debug
Issuer: C=US, O=Android, CN=Android Debug
Serial number: 1
Valid from: Fri Oct 21 00:50:00 IST 2016 until: S
Certificate fingerprints:
         MD5:  86:E3:2E:D7:0E:22:D6:23:2E:D8:E7:E
         SHA1: B4:6F:BE:13:AA:FF:E5:AB:58:20:A9:B
         SHA256: 15:88:E2:1E:42:6F:61:72:02:44:68
56:49:4C:32:D6:17:34:A6:7B:A5:A6
         Signature algorithm name: SHA1withRSA

【讨论】:

另一种方式,您可以从 (1) 右键单击​​ android studio 的 Gradle 栏 (2) 然后单击 app -> Tasks -> android -> signingReports 然后在 Gradle 上获取调试模式的此认证详细信息控制台你会得到报告【参考方案24】:

在 Android Studio 中获取 SHA1 密钥的最简单方法(调试和发布模式)

    打开Android Studio 打开你的项目 点击Gradle(从右侧面板,您会看到Gradle Bar) 点击Refresh(点击从Gradle Bar刷新,你会看到List Gradle scripts of your Project) 单击您的项目(您的项目名称表单列表) 点击任务/Android 双击signingReport(您将在运行栏中获得SHA1MD5

如果您使用的是新的 Android Studio,它会在顶部显示执行时间,点击切换任务执行模式,您将获得 SHA-1 密钥。检查第 2 和第 3 参考图像。

为发布模式生成 SHA-1

1-首先在你的gradle中添加keystore配置How to add config in gradle。

2-在 gradle 更改构建变体中添加配置后。

3-然后按照上述步骤,您将获得用于发布模式的 SHA-1。

4-检查图像。

【讨论】:

如何更改位置?我知道签名时如何更改为不同的密钥库,但默认的呢? 非常详细的图片答案,有很大帮助...比这里的其他答案更容易理解...为答案中的图片投票【参考方案25】:

如果您使用的是 android studio,请使用简单的步骤:

运行您的项目

点击 Gradle 菜单

扩展 Gradle 任务树

点击android->signingReport

如果没有显示(android studio 2.2)那么

点击运行栏中的Toggle tasks execution/text mode

【讨论】:

兄弟在当前版本中可能无法正常工作。【参考方案26】:

通过 cmd 进入你的 java bin 目录:

C:\Program Files\Java\jdk1.7.0_25\bin>

现在在你的 cmd 中输入以下命令:

keytool -list -v -keystore "c:\users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 

【讨论】:

【参考方案27】:

如果您使用的是 Android Studio IDE,那么您可以一键获取 SHA1 对您的所有构建变体具有价值。

在 Gradle 项目窗口下 > 选择根项目 > signingReport > 双击

下一个

转到变体:发布用于发布

转到变体:调试进行调试

http://devdeeds.com/create-sha1-key-using-android-studio/

【讨论】:

我做到了,但我没有得到 SHA 来发布! 请确保您已在 gradle 发布块下的登录配置中添加登录凭据。否则它不会显示释放 sha 键【参考方案28】:

在 ANDROID STUDIO 执行以下步骤:

    点击 ANDROID STUDIO IDE 右侧的 Gradle 菜单 展开任务树 点击签名报告

您将能够在 IDE 底部看到签名

【讨论】:

您的答案与提供的答案有何不同? ***.com/a/38369406/2308683【参考方案29】:

keytool 是一个密钥和证书管理实用程序。它允许用户 管理他们自己的公钥/私钥对和相关联的 用于自我认证的证书(用户 向其他用户/服务验证他/她自己)或数据 完整性和身份验证服务,使用数字签名。

适用于 Windows

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

其他

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

Android 上的授权使用 SHA1 指纹和包名称来识别您的应用,而不是客户端 ID 和客户端密码

http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

【讨论】:

【参考方案30】:

对于本地用户,您可以轻松地从 android studio 获取 sha1,但对于现场用户,请查看以下网址:

Facebook Android Generate Key Hash

我们大多没有完成以下步骤,因此请检查 100% 正确的链接。

8) If you see in openssl Bin folder, you will get a file with the name of 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 文件这是您的密钥哈希。

【讨论】:

以上是关于Android使用命令获取sha1证书指纹数据的方法的主要内容,如果未能解决你的问题,请参考以下文章

android 生成签名证书

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

在 Android Studio for Google Maps 中获取 SHA1 指纹证书

Android | 安全码SHA1

密钥库证书的SHA-1指纹

获取SHA1和MD5