首页 文章

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

提问于
浏览
142

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

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

25 回答

  • 0

    这是懒惰编码器的工具:

    1添加依赖:

    compile 'com.vk:androidsdk:1.6.9'
    

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

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

    3打开logcat并捕获消息 .

    4利润!

  • 3

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

    enter image description here

  • 63

    如果您使用的是Mac甚至Linux,只需将其复制并粘贴到 Terminal 应用程序上即可立即获得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
    
  • 12

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

  • 4

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

    • 单击android studio IDE右侧的Gradle属性菜单 .

    • 展开任务树 .

    • 点击signingReport你可以在底部控制台看到你的SHA1

    enter image description here

  • 0

    我第一次这么混乱,但我建议你 final working solution for 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

  • 173

    我认为这将完美地运作 . 我使用了相同的:

    对于Android Studio:

    单击Build> Generate Signed 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中的构建变体更改为发布模式 .

  • 12

    如果您使用的是Android Studio . 您不需要使用cmd提示生成SHA1指纹 . 您只需要使用Android Studio的默认 Map 活动创建项目 . 在项目中,您可以在“值”文件夹下的google_maps_api.xml中获取指纹 . 希望这会帮助你 . :)

    enter image description here

  • 65

    看看你是否想要使用 Google Map ,你需要 MD5 指纹来生成 api kay ,以便在Android应用程序中使用谷歌 Map .

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

    所以问题是,如果您想签署您的申请以进行发布,请阅读this .

    如果你想使用 google-map 阅读this .

  • 0

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

    单击:构建>生成登录APK创建新密钥:这将生成“.jks”文件

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

    $ keytool -list -v -keystore filename.jks

  • 86

    我认为这将完美地运作 . 我使用了相同的:

    对于Android Studio:

    • 点击 Build > Generate Signed APK .

    • 您将看到一个消息框,只需单击“确定” .

    • 现在将有另一个窗口复制 Key Store Path .

    • 现在打开命令提示符并转到 C:\Program Files\Java\jdk1.6.0_39\bin> (或任何已安装的jdk版本) .

    • 键入 keytool -list -v -keystore ,然后粘贴 Key Store Path (例如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") .

    • 现在它将询问 Key Store Password ,提供您的并按Enter键以获取SHA1和MD5证书密钥 .

  • 11

    如果您使用的是Android Studio . 您可以通过 Gradle Tasks 快速获取 SHA1 certificate 指纹(调试,发布... all Build Types !!):

    签署报告

    SHA1显示在 Messages Logs

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

    com.android.application

    到密钥库的文件路由:

    HOME / .android / debug.keystore

    我建议将 attach 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)

  • 57

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

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

    在此之后有两件事可能发生

    • 它会要求您输入密码

    只需输入

    android

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

    • 它会要求您下载合适的程序(并会给出一些列表)

    只需在终端输入以下内容

    sudo apt install openjdk-8-jre-headless

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

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

    android

    并且您将在输出中获得下面的SHA1指纹 .

  • 138

    打开终端(在 UnixMAC 中),( cmdWindows 中)和 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指纹 .

  • 11

    这是我的简单解决方案:

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

    单击Gradle后,请检查以下图像 . 希望这有助于某人 .

    STEP 1:

    Image Step one

    STEP 2:

    Image Step two

  • 3

    在命令行中使用它

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

    试试这个:Windows ----偏好---- Android - build --- sh1代码拷贝从这里开始

  • 3
    keytool -list -v -keystore "keyStoreName"
    

    从存在应用程序密钥库的目录中运行此命令 .

  • 3

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

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

    最长的时间我无法理解,但我发现我的应用程序是由谷歌签署的,即开发者控制台顶部的消息显示: Google Play App Signing is enabled for this app.

    我进入了Release Management选项卡,然后向下滚动到App Signing,在那里找到了SHA-1 . 将此添加到我的代码和我用作Google登录后端的“firebase控制台”后,一切似乎都有效 . 看起来我的发布密钥库被谷歌签名证书取代了...我不确定这是不是发生了什么,但它解决了我的问题,并允许我的谷歌Play商店发布apk正确认证与谷歌标志在!

  • 0

    使用portecle

    • File>打开Keystore文件

    • 输入密钥库密码

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

  • 0

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

  • 38

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

    祝好运

  • 1

    一步一步的解决方案:

    • 打开命令提示符或Terminal for Mac

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

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

    • 文件>项目结构> SDK位置..并找到JDK位置 .

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

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

  • 1

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

  • 1

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

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

    这将导致以下输出:

    enter image description here

相关问题