ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

在导出/上传您的应用程序之前,请使用 user2453771 的答案。导出/上传后使用 frederick nyawaya 的回答。记住这一点,并为自己节省几个小时的痛苦。
如何使用 linux 终端生成发布 apk 密钥库
获取用于发布和调试模式 android studio gradle 的 SHA-1 的最简单方法。 Check this

F
Frederick Nyawaya

https://i.stack.imgur.com/SldEv.png


MD5 现在出现在 logcat 中(不在创建期间的窗口中)。
执行两次导出过程。它将在第二回合显示。
有没有办法使用这种方法创建一个新的?我试图这样做,但我的旧密钥库文件在那里,但我认为它是错误的(我需要调试证书,而不是发布证书),而且我忘记了密码。 >_<谢谢,如果你有小费。
注意:您不必完全导出 .apk。您可以在复制 SHA1 后取消,以避免创建不必要的 .apks。
N
Nick

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

https://i.stack.imgur.com/kzVTx.png


这应该是公认的答案,因为它是最简单的方法。
对于默认/调试密钥库,而不是生产密钥库
伙计们请注意,安全的答案是@frederick nyawaya 的。如果您的应用程序有不同的构建和发布密钥存储(大多数情况下,地图将无法在您的客户端上运行。天知道您什么时候会知道这一点,因为它在您自己的计算机上运行良好。请小心。这很容易,但您最终可能会在客户端设备上获得无法正常工作的地图服务。
K
Kaushik

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

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


通过其他机器创建的密钥库文件我可以在不同的机器上获得具有相同密钥库文件的 sh1
R
Randy Sugianto 'Yuku'

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

@yuku 请举个例子。 /home/desktop/././. , abc.jks, n all, 哪个密码,我们需要所有这些细节吗?
keytool -list -v -keystore my-release-key.keystore
JKS 密钥库使用专有格式。建议迁移到行业标准格式 PKCS12,使用“keytool -importkeystore -srckeystore /.keystore -destkeystore /<变体名称>.keystore -deststoretype pkcs12"。
D
Dan Jurgen

在命令行中使用它

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

随着越来越多的人迁移到 IntelliJ/Studio 并且无法使用 Eclipse/ADT 的易用性,我觉得这是最简单但标准的方式。队友的欢呼声!!
为什么它问我密码
我得到了,访问被拒绝。!
g
gurkan

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


S
Simon MᶜKenzie
keytool -list -v -keystore "keyStoreName"

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


这可用于获取您将导出和发布的客户端应用程序的 SHA1。这可能与您在 Eclipse 中看到的不同,后者是一个调试密钥库。
H
Harunduet

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

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

https://i.stack.imgur.com/J8XUD.jpg


J
Joel Christophel

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

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

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

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


感谢您重播 Akshay。显然我需要在我的 keytool 命令中添加 -v 以显示其他证书指纹。此外,显然我可以使用调试证书来创建客户端 ID。
大多。我解决了创建客户 ID 的问题。但是,我一般来说是 OAuth 的新手,而不是证书和指纹的工作方式。我猜证书可以同时具有 MD5 和 SHA1 指纹?至少这是我执行 keytool -list -v etc 命令时得到的结果
u
user9869932

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

祝你好运


V
Vinod Joshi

如果有人使用 Android Studio...

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

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

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


额外提示:为 facebook $keytool -keystore filename.jks | openssl sha1 -binary | openssl base64 生成密钥哈希的命令
T
TaeKwonJoe

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

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

这将导致以下输出:

https://i.stack.imgur.com/aNq1w.png


C
Choletski

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

https://i.stack.imgur.com/dB6la.jpg

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

https://i.stack.imgur.com/NdpF6.jpg


s
shim

这是我的简单解决方案:

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

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

步骤1:

https://i.stack.imgur.com/KTuGe.png

第2步:

https://i.stack.imgur.com/tHSJP.png


S
SergioLucas

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


P
Poras Bhardwaj

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

https://i.stack.imgur.com/TbAPS.png


D
David Arenburg

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


R
Rishab Jain

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

对于 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 中的构建变体更改为发布模式。


无法输入我输入的密钥库密码,但未在命令提示符中输入密码
密码不可见只需正确输入您的密码并按回车即可获得您的密钥
谢谢我输入了错误的密码现在它的工作谢谢你们
U
Uzair

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

https://i.stack.imgur.com/h6krV.png


w
wired00

对于那些在 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。


A
Akshay Chopra

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

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

在此之后有两件事可能

它会要求你输入密码只需输入

安卓

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

它会要求您下载合适的程序(并会给出一些列表)只需在终端中输入以下内容

sudo apt install openjdk-8-jre-headless

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

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

安卓

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


S
Sandun Sameera

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


s
samsul

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

R
Radi

使用 portecle

文件 > 打开密钥库文件

输入密钥库密码

右键单击别名 > 证书详细信息 > SHA-1 指纹


C
Community

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


B
Brandon

我想向与我有同样问题的人发布通知。我完成了生成调试 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 正确地通过谷歌签名进行身份验证在!


F
Fabrizio

逐步解决方案:

打开命令提示符或 Mac 终端 将目录更改为 keytool 文件位置的目录。使用命令 cd <目录路径> 更改目录。 (注意:如果任何目录名称有空格,则在两个单词之间添加 \。示例 cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)要查找 keytool 的位置,你去android studio..打开你的项目。并转到文件>项目结构> SDK位置..并找到JDK位置。通过以下命令运行 keytool: keytool -list -v –keystore <你的 jks 文件路径> (注意:如果任何目录名称有空格,则在两个单词之间添加 \。example keytool -list -v -keystore /Users/username/ Desktop/tasmiah\ mobile/v3/jordanos.jks) 命令提示您输入密码.. 所以输入您的密码.. 然后您会得到结果


A
Aleksandr

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

1 添加依赖:

compile 'com.vk:androidsdk:1.6.9'

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

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

3 打开 logcat 并捕获消息。

4 利润!


P
Peter

https://i.stack.imgur.com/3WVSw.png

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅