Làm cách nào để lấy dấu vân tay Chứng chỉ ký (SHA1) cho OAuth 2.0 trên Android?


154

Tôi đang cố gắng đăng ký ứng dụng Android của mình theo các bước trong https://developers.google.com/console/help/#installed_appluggest dẫn tôi theo dõi http://developer.android.com/tools/publishing/app- ký.html .

Tuy nhiên, tôi không chắc chắn làm thế nào để lấy dấu vân tay chứng chỉ ký (SHA1).

Lần đầu tiên tôi sử dụng plugin ADT của Eclipse để xuất và tạo kho khóa / khóa. Sau đó, tôi đã thử làm keytool -list keystore mykeystore.keystorevà nó cho tôi dấu vân tay Chứng chỉ MD5. Tôi có cần làm lại việc ký không (nghĩa là tôi không thể sử dụng thuật sĩ xuất nhật thực)?

Tôi có thể sử dụng chứng chỉ gỡ lỗi trước không?


Trước khi xuất / tải lên ứng dụng của bạn, hãy sử dụng câu trả lời của user2453771. Sau khi xuất / tải lên, hãy sử dụng câu trả lời của frederick nyawaya. Hãy nhớ điều đó và tự cứu mình vài giờ đau đớn.
SmulianJulian

Cách tạo kho khóa apk phát hành bằng thiết bị đầu cuối linux
Manish

1
Cách dễ nhất để có được SHA-1 cho bản phát hành và chế độ gỡ lỗi android studio. Kiểm tra cái này
Naeem Ibrahim

Câu trả lời:


174

Bắt đầu quá trình xuất để tạo apk cho ứng dụng của bạn và sử dụng khóa sản xuất của bạn. Trang cuối cùng hiển thị cả dấu vân tay chứng chỉ SHA1 và MD5 của bạnnhập mô tả hình ảnh ở đây


2
MD5 xuất hiện trong logcat ngay bây giờ (không phải trong cửa sổ trong khi tạo).
Công cụ

4
Làm quá trình xuất khẩu hai lần. Nó sẽ được hiển thị trong lượt thứ hai.
keybee

Có cách nào để tạo một cái mới bằng phương pháp này không? Tôi đã cố gắng để làm điều này, nhưng tệp kho khóa cũ của tôi ở đó, nhưng tôi nghĩ đó là sai (tôi cần chứng chỉ gỡ lỗi, không phải bản phát hành), cộng với tôi quên mật khẩu. > _ <Cảm ơn nếu bạn có tiền boa.
Azurespot

LƯU Ý: Bạn không phải xuất đầy đủ .apk. Bạn có thể hủy tại thời điểm này sau khi sao chép SHA1 để tránh tạo .apks không cần thiết.
GraSim

139

Tôi biết câu hỏi này đã được trả lời nhưng đây là cách tôi tìm thấy chữ ký của mình cho kho khóa mặc định. Trong Eclipse, nếu bạn truy cập Windows -> Tùy chọn -> Android -> Xây dựng

nhập mô tả hình ảnh ở đây


5
Đây phải là câu trả lời được chấp nhận, vì đó là cách dễ nhất.
Mustafa

3
đối với kho khóa mặc định / gỡ lỗi, không phải kho khóa sản xuất
Frederick Nyawaya

3
Các bạn hãy lưu ý rằng câu trả lời an toàn là của @frederick nyawaya. Nếu ứng dụng của bạn có các bản dựng và xuất bản các cửa hàng chính khác nhau (thường là trường hợp này, bản đồ sẽ KHÔNG hoạt động trên máy khách của bạn. Và Chúa biết khi nào bạn sẽ biết điều này vì nó hoạt động tốt trên máy tính của chính bạn. Hãy cẩn thận. Điều này thật dễ dàng nhưng có khả năng bạn sẽ có một dịch vụ bản đồ không hoạt động trên các thiết bị khách của mình.
Tina

92

Tôi nghĩ rằng điều này sẽ làm việc hoàn hảo. Tôi đã sử dụng tương tự:

Dành cho Android Studio:

  1. Nhấp vào Build > Tạo APK đã ký .
  2. Bạn sẽ nhận được một hộp thông báo, chỉ cần nhấp vào OK.
  3. Bây giờ sẽ có một cửa sổ khác chỉ cần sao chép Key Store Path .
  4. Bây giờ hãy mở một dấu nhắc lệnh và đi đến C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> (hoặc bất kỳ phiên bản jdk nào đã cài đặt).
  5. keytool -list -v -keystore và sau đó dán của bạn đường dẫn chính cửa hàng (Ví dụ: C:. \ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ My Projects \ Android \ android studio \ đã ký apks \ Hello World \ HelloWorld.jks ").
  6. Bây giờ nó sẽ hỏi Mật khẩu lưu trữ khóa , cung cấp mật khẩu của bạn và nhấn Enterđể lấy khóa Chứng chỉ SHA1 và MD5 của bạn.

Tệp kho khóa được tạo qua máy khác, tôi có thể lấy sh1 với cùng tệp lưu trữ khóa với quy trình trên trên các phần gia công khác nhau
Mahendra Dabi

Cảm ơn bạn rất nhiều
Hiren

74

Nếu bạn đang sử dụng Mac hoặc thậm chí Linux, chỉ cần sao chép và dán ứng dụng này lên ứng dụng Terminal và bạn sẽ nhận được khóa SHA1 ngay lập tức. Không cần thay đổi gì cả.

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

Ví dụ đầu ra:

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 ví dụ xin vui lòng. /home/desktop/././. , abc.jks, mật khẩu n tất cả, chúng ta có cần tất cả các chi tiết này không ??
Prabs

Cảm ơn. Chỉ có điều này là cách dễ nhất.
Sayka

Bạn thực sự đã cứu ngày của tôi. Cảm ơn rất nhiều.
Karan Nagpal

keytool -list -v -keystore my-release-key.keystore
Snow Bases

Kho khóa JKS sử dụng định dạng độc quyền. Bạn nên chuyển sang PKCS12 là định dạng tiêu chuẩn công nghiệp bằng cách sử dụng "keytool -importkeystore -srckeystore <use-current-key-store> / <tên biến thể> .keystore -destkeystore <new-key-store>> tên biến thể> .keystore -deststoretype pkcs12 ".
Arpit J.

68

sử dụng điều này trong dòng lệnh

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

1
điều này tôi cảm thấy là cách đơn giản nhất nhưng cũng là cách tiêu chuẩn khi ngày càng nhiều người di chuyển đến IntelliJ / Studio và không có quyền truy cập dễ dàng vào Eclipse / ADT. Cổ vũ người bạn đời!!
Quần lót Himadri

Tại sao nó hỏi tôi mật khẩu
Abhijit Chakra

tôi đã nhận, truy cập bị từ chối.!
sudhakar phad

59

Mở terminal (trong Unix , MAC ), ( cmdtrong Windows ) và cdđường dẫn này (java) của bạn:

C:\Program Files\Java\jdk1.6.0_43\bin>

Chạy lệnh này:

keytool -list -v -keystore C:\Users\leon\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Chỉ cần thay đổi đường dẫn đến debug.keystorevà bạn sẽ nhận được cả dấu vân tay MD5 và SHA-1.


40
keytool -list -v -keystore "keyStoreName"

Chạy lệnh này từ thư mục nơi kho khóa của ứng dụng của bạn tồn tại.


Điều này có thể được sử dụng để có được SHA1 cho ứng dụng khách của bạn mà bạn sẽ xuất và xuất bản. Điều này có lẽ khác với cái bạn nhìn thấy trong nhật thực, đó là một kho khóa gỡ lỗi.
dannyhan12

29

Trong Android Studio, hãy làm theo các bước sau:

  1. Nhấp vào menu thuộc tính Gradle ở bên phải của IDE studio android của bạn.
  2. Mở rộng cây nhiệm vụ.
  3. Nhấp vào SignReport Bạn có thể thấy SHA1 của mình ở bảng điều khiển phía dưới

nhập mô tả hình ảnh ở đây


13

Xem nếu bạn muốn sử dụng Google Maptại thời điểm đó bạn cần MD5vân tay để tạo api kayđể sử dụng google map trong ứng dụng Android của bạn.

Lệnh Keytool tạo MD5dấu vân tay nếu bạn sử dụng JDK 1.6và nó tạo SHA1dấu vân tay nếu bạn sử dụng JDK 1.7.

Vì vậy, điều là nếu bạn muốn ký đơn đăng ký của bạn để xuất bản thì hãy đọc .

Và nếu bạn muốn sử dụng google-maphãy đọc này .


Cảm ơn vì đã phát lại Akshay. Rõ ràng tôi cần thêm -v vào lệnh keytool của mình để hiển thị dấu vân tay chứng chỉ khác. Ngoài ra, rõ ràng tôi có thể sử dụng chứng chỉ gỡ lỗi để tạo ID khách hàng.
Alex

1
Hầu hết. Tôi đã giải quyết vấn đề tạo ID khách hàng. Tuy nhiên, tôi chưa quen với OAuth nói chung và không biết cách chứng chỉ và dấu vân tay hoạt động. Tôi đoán một chứng chỉ có thể có cả dấu vân tay MD5 và SHA1? Ít nhất đó là những gì tôi nhận được khi thực hiện keytool -list -v etcmệnh lệnh
Alex

12

Nếu bạn đang sử dụng IntelliJ (12+?), Hãy chuyển đến trình đơn Xây dựng / Tạo Api đã ký

Sau khi điền vào một cửa sổ bật lên, hãy lấy dữ liệu trong trường "đường dẫn lưu trữ khóa" (ví dụ: C: \ Users \ user \ Documents \ store \ store)

Và chạy trong một dòng lệnh:

>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
...

Chúc may mắn


12

Nếu có ai sử dụng studio Android ...

nhấp: Xây dựng> Tạo APK đã đăng nhập Tạo khóa mới: điều này sẽ tạo các tệp ".jks"

Sử dụng lệnh sau để đọc dữ liệu (SHA1 và thông tin khác):

$ keytool -list -v -keystore filename.jks


mẹo thêm : lệnh tạo Key Hash cho facebook$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred

4

Đối với những người sử dụng OpenSSL, bạn có thể truy xuất dấu vân tay SHA1 theo cách này:

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

Điều này sẽ dẫn đến đầu ra sau đây:

nhập mô tả hình ảnh ở đây


4

Nếu bạn đang sử dụng Android Studio. Bạn không cần tạo dấu vân tay SHA1 bằng dấu nhắc cmd. Bạn chỉ cần tạo một dự án với Hoạt động Bản đồ mặc định của Android Studio. Trong dự án, bạn có thể lấy dấu vân tay trong google_maps_api.xml trong thư mục Giá trị. Hy vọng điều này sẽ giúp bạn. :)

nhập mô tả hình ảnh ở đây


4

Đây là giải pháp dễ dàng của tôi cho việc này:

Nhấn vào Gradlenút, bạn có thể tìm thấy ở phía trên bên phải. bạn sẽ thấy tất cả các tập tin gradle. Bây giờ hãy truy cập Android và nhấp đúp chuột vào SignReport. Khi quá trình xây dựng lớp kết thúc, bạn sẽ thấy khóa SHA. Kiểm tra các hình ảnh dưới đây để hướng dẫn từng bước.

Khi bạn nhấp vào Gradle kiểm tra các hình ảnh dưới đây. Hy vọng điều này sẽ giúp được ai đó.

BƯỚC 1:

Hình ảnh Bước một

BƯỚC 2:

Hình ảnh Bước hai


3

Nếu bạn đang sử dụng Android Studio. Bạn có thể nhanh chóng lấy dấu vân tay chứng chỉ SHA1 (gỡ lỗi, phát hành ... tất cả các loại bản dựng !!) thông qua Nhiệm vụ cấp độ :

ký kết

SHA1 được hiển thị trong Nhật ký tin nhắn

Plugin Android (được định cấu hình trong ứng dụng gradle) tạo chế độ gỡ lỗi theo mặc định.

com.android.application

Định tuyến tệp đến kho khóa:

TRANG CHỦ / .android / debug.keystore

Tôi khuyên bạn nên đính kèm debug.keystore vào build.gradle. Để thực hiện việc này, hãy đặt tệp debug.keystore vào thư mục ứng dụng và sau đó Thêm SigningConfigs trong ứng dụng lớp:

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"
            }
        }    
        ........
    }

Bổ sung: Nếu bạn muốn tạo để phát hành, hãy đặt một tệp phát hành.keystore vào thư mục ứng dụng. (Ví dụ này sử dụng cùng debug.keystore)



3

Lần đầu tiên tôi rất bối rối, nhưng tôi đề xuất cho bạn giải pháp làm việc cuối cùng cho Windows:

1) Mở cmd và chuyển đến thư mục Java / jdk / bin của bạn (chỉ cần nhấn cd ..để quay lại một thư mục và cd NAME_FOLDERchuyển tiếp một thư mục), trong trường hợp của tôi, thư mục cuối cùng:C:\Program Files\Java\jdk1.8.0_73\bin> nhập mô tả hình ảnh ở đây

2) Bây giờ gõ lệnh này keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Kết quả là bạn phải có được một cái gì đó như thế này: nhập mô tả hình ảnh ở đây


2

Tôi nghĩ rằng điều này sẽ làm việc hoàn hảo. Tôi đã sử dụng tương tự:

Dành cho Android Studio:

Nhấp vào Build> Tạo APK đã ký. Bạn sẽ nhận được một hộp thông báo, chỉ cần nhấp vào OK.

Bây giờ sẽ có một cửa sổ khác chỉ cần sao chép Key Store Path.

Bây giờ hãy mở một dấu nhắc lệnh và đi đến C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> (hoặc bất kỳ phiên bản jdk nào đã cài đặt).

Nhập keytool -list -v -keystore và sau đó dán Đường dẫn lưu trữ khóa của bạn (Ví dụ: C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ My dự án \ Android \ android studio \ đã ký apks \ Hello World \ HelloWorld.jks ").

Bây giờ nó sẽ hỏi Mật khẩu lưu trữ khóa, cung cấp mật khẩu của bạn và nhấn Enter để nhận các khóa Chứng chỉ SHA1 và MD5 của bạn.

Bây giờ hãy thêm khóa SHA1 này vào bảng điều khiển của nhà phát triển google trong tab thông tin xác thực và cũng thay đổi các biến thể xây dựng trong studio android sang chế độ phát hành.


không thể nhập mật khẩu lưu trữ khóa tôi nhập nhưng mật khẩu không được nhập vào dấu nhắc lệnh
Mahendra Dabi

mật khẩu không hiển thị, chỉ cần nhập chính xác mật khẩu của bạn và nhấn enter, bạn sẽ nhận được các khóa của mình
Rishab Jain

cảm ơn bạn tôi đã nhập sai mật khẩu bây giờ nó hoạt động cảm ơn các bạn
Mahendra Dabi

1

Đối với những người trên mac đang tìm kiếm keytool. làm theo các bước sau:

Trước tiên hãy đảm bảo cài đặt Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Sau đó nhập lệnh này vào dấu nhắc lệnh:

/usr/libexec/java_home -v 1.7

nó sẽ phun ra một cái gì đó như:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytool nằm trong cùng thư mục với javac. I E:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

Từ thư mục bin bạn có thể sử dụng keytool.


1

Nếu bạn đang dùng Mac / Linux, thì bạn có thể lấy dấu vân tay SHA1 bằng cách viết dòng sau trong thiết bị đầu cuối:

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

Có 2 điều có thể sau này

  1. Nó sẽ hỏi bạn mật khẩu

    Chỉ loại

Android

và nhấn enter, bạn có thể tìm thấy phím SHA1 trong đầu ra được hiển thị bên dưới.

  1. Nó sẽ yêu cầu bạn tải xuống một chương trình phù hợp (và một số danh sách sẽ được cung cấp)

    Chỉ cần gõ theo sau trong thiết bị đầu cuối

sudo apt cài đặt openjdk-8-jre-headless

và sau đó một lần nữa chạy sau trong thiết bị đầu cuối: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Lần này, bạn sẽ được dẫn đến bước 1, nơi bạn chỉ cần nhập mật khẩu là

Android

và bạn sẽ nhận được dấu vân tay SHA1 của mình bên dưới trong đầu ra.


0

Sử dụng portecle :

  • Tệp> Mở tệp kho khóa
  • Nhập mật khẩu kho khóa
  • Nhấp chuột phải vào tên bí danh> Chi tiết chứng chỉ> Dấu vân tay SHA-1


0

Tôi muốn đăng một thông báo cho những người đang có cùng một vấn đề như tôi. Tôi đã trải qua các bước để tạo gỡ lỗi SHA-1 và bản phát hành SHA-1 của tôi. Tôi đã cố gắng kết nối API đăng nhập Google với ứng dụng của mình.

Tôi gặp phải vấn đề là gỡ lỗi .apk sẽ hoạt động tốt, nó sẽ kết nối và xác thực với Đăng nhập Google. Bản phát hành .apk của tôi cũng sẽ hoạt động khi được cài đặt thủ công vào điện thoại. Khi tôi đăng bản phát hành .apk của mình lên cửa hàng Google play, Đăng nhập google của tôi sẽ không xác thực và tôi sẽ gặp sự cố!

Trong thời gian dài nhất tôi không thể tìm ra nó, nhưng tôi thấy rằng ứng dụng của mình đã được google ký, tức là thông báo trên đầu bảng điều khiển dành cho nhà phát triển đã hiển thị: Đăng nhập ứng dụng Google Play được bật cho ứng dụng này.

Tôi đã đi đến tab Quản lý phát hành, sau đó cuộn xuống Đăng nhập ứng dụng và tìm thấy SHA-1 ở đó. Sau khi thêm mã này vào mã của tôi và trên "bảng điều khiển firebase" mà tôi đang sử dụng làm phụ trợ cho Đăng nhập Google, mọi thứ dường như hoạt động. Có vẻ như kho khóa phát hành của tôi đã được thay thế bằng chứng chỉ có chữ ký của google ... Tôi không thực sự chắc chắn liệu đây có phải là sự cố không, nhưng nó đã giải quyết vấn đề của tôi và cho phép apk phát hành Cửa hàng Google Play của tôi xác thực chính xác bằng dấu hiệu google trong!


0

Giải pháp từng bước:

  1. Mở dấu nhắc lệnh của bạn hoặc Terminal cho Mac
  2. Thay đổi thư mục thành thư mục của vị trí tệp keytool. Thay đổi thư mục bằng cách sử dụng lệnh cd <directory path>. (Lưu ý: nếu bất kỳ tên thư mục nào có khoảng trắng thì thêm \vào giữa hai từ. Ví dụ cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Để tìm vị trí của keytool của bạn, bạn vào android studio..open dự án của bạn. Và đi đến

    • Tệp> Cấu trúc dự án> Vị trí SDK..và tìm vị trí JDK.

  3. Chạy keytool bằng lệnh này: keytool -list -v –keystore <your jks file path>(Lưu ý: nếu bất kỳ tên thư mục nào có khoảng trắng thì thêm \ giữa hai từ. Ví dụ keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. Lệnh nhắc bạn nhập mật khẩu .. vì vậy hãy nhập mật khẩu của bạn .. sau đó bạn nhận được kết quả


0

Đây là công cụ dành cho các lập trình viên lười biếng:

Thêm 1 phụ thuộc:

compile 'com.vk:androidsdk:1.6.9'

2 thêm dòng sau ở đâu đó trong hoạt động / ứng dụng của bạn:

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

3 Mở logcat và bắt tin nhắn.

4 lợi nhuận!


0
  1. Mở dấu nhắc lệnh của bạn
  2. Điều hướng thư mục làm việc đến 1.8.0 / bin
  3. dán keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Nhấn enter nếu nó hỏi bạn mật khẩu

0

Nếu bạn muốn lấy khóa vân tay-sha1 từ việc ký tệp keystore.jks Chạy lệnh sau từ thiết bị đầu cuối:

keytool -list -v -keystore <.../path/keystore.jks>

Thí dụ

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
.....................

0

Vui lòng Nhấp vào Gradle từ bên phải của Menu Sau đó nhấp vào: app Sau đó nhấp vào thư mục android Sau đó, tên tệp SigningReport tồn tại ở đó Nhấp đúp vào đó. Nó sẽ bắt đầu thực thi và sau một thời gian nó sẽ hiển thị cho bạn Mã SHA-1 Chỉ cần sao chép mã. Và dán nó vào nơi bạn cần

Báo cáo ký tên nổi bật trong hình ảnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.