密钥库证书的 SHA-1 指纹

Posted

技术标签:

【中文标题】密钥库证书的 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】:

按照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/…【参考方案2】:

如果您使用的是 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 按钮时,它会像以前一样在我的设备/模拟器上安装并运行该应用程序?【参考方案3】:

在 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-检查图像。

【讨论】:

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

通过 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 

【讨论】:

【参考方案5】:

如果您使用的是 eclipse,请转到: 窗口->首选项->Android->构建 你会在那里找到你正在寻找的东西。

【讨论】:

我在哪里可以找到 Android Studio 上的等价物?我的 IDE 指向错误的 SHA1【参考方案6】:

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

【讨论】:

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

运行以下命令以获取您的 sha1:keytool -v -list -keystore "< debug.keystore path >" 如果您不知道debug.keystore 的路径,您可以通过检查windows-->preferences-->android-->build 找到您的debug.keystore 路径

我准备了分步教程来展示如何在模拟器上使用 google map android v2(android 4.2.2) 看看我的博客:http://umut.tekguc.info/en/content/google-android-map-v2-step-step

【讨论】:

【参考方案8】:

我看到很多关于这个问题的帖子,所以我会保持简单+示例。

要获取 ClientID 的 SHA1 以使用 Google+ 登录和更多操作:

一般形式:

keytool -list -v -keystore <your_keystore_full_path> -alias <your_alias_name>

对于调试,请替换为您的 debug.keystore 路径,例如:

keytool -list -v -keystore C:\Users\DAVID\.android\debug.keystore -alias androiddebugkey

密码:安卓

对于 Release,请替换为您的密钥库路径和别名密码,例如:

keytool -list -v -keystore C:\ProjectsData\keystore\my-release-key.keystore -alias alias_name 

密码:您的别名密码。

【讨论】:

效果很好!我在 console.developer.google.com 中包含了 DEBUG 和 RELEASE 键。不确定两者是否真的需要。尽管如此,在这个 G**gle 功能上花费了 4 小时后,它仍然很有效。 如果您的别名键有“App Moon”之类的空格,则添加双引号“App Moon”作为别名。 最好的和有效的解决方案,对于谷歌客户端 ID,我需要 SHA-1 处于发布模式,其他解决方案为我们提供调试模式的 SHA-1【参考方案9】:

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

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

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

【讨论】:

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

在您的应用中使用 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'

【讨论】:

【参考方案11】:

我们可以从调试密钥库中获得Eclipse 中的SHA1 值。从菜单访问: Window -> Preferences -> Android -> Build

但它不适用于制作Keystore

因此,要从生产密钥库中获取 SHA1 值,请转到: Android Tools -> Export Signed Application Package。按照流程对您的 apk 进行签名,SHA1 将显示为证书。

【讨论】:

【参考方案12】:

我有一个简单的答案。 要在新的 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 指纹

【讨论】:

【参考方案13】:

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

【讨论】:

【参考方案14】:

对于 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,最后单击签名报告 我的错误是我使用了发布配置,这就是我出错的原因。现在它工作正常谢谢【参考方案15】:

在 Gnu/Linux 中

第一

您需要 key.jks,例如在我的情况下,此文件位于 /Desktop/Keys 的文件夹中

/Desktop/Keys/key.jks

第二

cd /usr/lib/jvm/java-1.7.0-openjdk-amd64

现在你需要执行这个命令

keytool -list -v -keystore /PATH/file.jks -alias YourAlias -storepass *** -keypass ***

替换此字段

-keystore
-alias
-storepass
-keypass

例如

 keytool -list -v -keystore /home/david/Desktop/Keys/key.jks -alias MyAlias -storepass 456 -keypass 123

祝你好运!!

【讨论】:

【参考方案16】:

首先有与fb-sdk android-support-v4.jar 相同的.jar 文件。 然后生成SHA1 密钥使用:

PackageInfo info;
try 

    info = getPackageManager().getPackageInfo(
        "com.example.worldmission", PackageManager.GET_SIGNATURES);

    for (Signature signature : info.signatures) 
        MessageDigest md;
        md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String something = new String(Base64.encode(md.digest(), 0));
        Log.e("Hash key", something);
        System.out.println("Hash key" + something);
    

 catch (NameNotFoundException e1) 
    Log.e("name not found", e1.toString());
 catch (NoSuchAlgorithmException e) 
    Log.e("no such an algorithm", e.toString());
 catch (Exception e) 
    Log.e("exception", e.toString());

【讨论】:

与证书无关。【参考方案17】:

所有步骤的最佳方式:

对于发布 Keystore SHA1 密钥

    打开命令提示符 C:\Users\hiren.patel&gt;cd.. C:\Users&gt;cd.. C:\&gt;cd "Program Files" C:\Program Files&gt;cd Java C:\Program Files\Java&gt;cd jdk_version_code C:\Program Files\Java\jdk_version_code&gt;cd bin C:\Program Files\Java\jdk_version_code\bin&gt;keytool -list -v -keystore "D:\Hiren Data\My Root Folder\My Project Folder\keystore_title.jks" -alias my_alias_name -storepass my_store_password -keypass my_key_password

替换下面的东西:

    jdk_version_code D:\Hiren Data\My Root Folder\My Project Folder\keystore_title.jks my_alias_name my_store_password my_key_password

完成

【讨论】:

【参考方案18】:

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

【讨论】:

【参考方案19】:

第 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

【讨论】:

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

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

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

下一个

转到变体:发布用于发布

转到变体:调试进行调试

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

【讨论】:

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

//获取SHA1的最简单方法

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

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

【讨论】:

【参考方案22】:

您可以通过 Eclipse 中的 Window&gt;Preference&gt;Android&gt;Build 获取任何工作区的 MD5SHA1 指纹。

【讨论】:

这将完成这项工作,而不是经历导出和使用 CMD 的麻烦【参考方案23】:

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

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

使用命令cd &lt;next directory name&gt; 将目录更改为下一个。 使用命令cd .. 将目录更改为 Prev

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

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

【讨论】:

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

除了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 密钥。

【讨论】:

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

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

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

【讨论】:

【参考方案26】:

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

运行您的项目

点击 Gradle 菜单

扩展 Gradle 任务树

点击android->signingReport

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

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

【讨论】:

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

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

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

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

【讨论】:

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

我使用的是 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 上获取调试模式的此认证详细信息控制台你会得到报告【参考方案29】:

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

【讨论】:

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

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

keytool -list -printcert -jarfile app.apk

【讨论】:

以上是关于密钥库证书的 SHA-1 指纹的主要内容,如果未能解决你的问题,请参考以下文章

密钥库证书的 SHA-1 指纹

密钥库证书的SHA-1指纹

调试时生成的证书 SHA1 指纹与我正在使用的密钥库不匹配

我在哪里使用颤振获得 SHA-1 证书指纹? (使用颤振创建--androidx ProjectName)

证书指纹无效?

无法获取 SHA1 证书指纹 Android Studio [重复]