Làm cách nào tôi có thể tìm và chạy keytool


185

Tôi đang đọc hướng dẫn phát triển của Nhà phát triển Facebook tại đây

Nó nói rằng tôi phải sử dụng keytool để xuất chữ ký cho ứng dụng của mình, chẳng hạn như:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Tôi không biết cách tìm keytool để chạy nó. Tôi đã cố mở một dấu nhắc lệnh của Windows và dán lệnh trên, nhưng nó không hoạt động.


nếu bạn đang chạy hệ thống dựa trên Linux /usr/local/java/bin# ./keytoolnếu bạn đang chạy Windowsfind the JDK install path and check bin folder
El Sơn

tôi tìm thấy cái này và bạn có thể sử dụng nó để giải quyết vấn đề stackoverflow.com/a/57390582/13405428
ashraf alqaabera

Câu trả lời:


184

Tôi tìm thấy một giải pháp của mình như dưới đây trích dẫn. Nó hoạt động tốt.

"C:\Program Files\Java\jdk1.6.0_26\bin\keytool.exe" -exportcert -alias
> sociallisting -keystore "D:\keystore\SocialListing"  |
> "C:\cygwin\bin\openssl.exe" sha1 -binary | "C:\cygwin\bin\openssl.exe"
> base64

6
Tôi đã tìm thấy nó ở đây: C: \ Chương trình tập tin \ Java \ jre1.8.0_111 \ bin \ keytool.exe
Jaime Montoya

9
Hoặc C: \ Tệp chương trình \ Android \ Android Studio \ jre \ bin
SHAHM

Cảm ơn @SHAHM: thật tuyệt vời cho những người không muốn tải xuống một cách rõ ràng Java LẠI và bị lỗi mỗi tuần để nâng cấp lên phiên bản mới nhất.
Pete Alvin

116

Chỉ cần nhập chúng vào dấu nhắc lệnh của Windows.

cd C:\Program Files\Java\jdk1.7.0_09\bin

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\userName\.android\debug.keystore" -list -v

Mật khẩu cơ sở là android

Bạn sẽ được trình bày với MD5, SHA1SHA256phím; Chọn một trong những bạn cần.


3
Điều này làm việc cho tôi. Đối với các khóa gỡ lỗi, sử dụng android -ebias androiddebugkey.
Broo

Tôi sử dụng cho phiên bản phát hành dòng tiếp theo: 1) cd C: \ Program Files \ Java \ jdk1.8.0_162 \ bin và tiếp theo 2) keytool -list -v -keystore "C: \ AndroidProjects \ Project1 \ app \ myapp.keystore "
Andrew Grow

2
keytool error: java.lang.Exception: Only one command is allowed: both -exportcert and -list were specified.
Gustaf Liljegren

80

Để lấy mã băm khóa android, hãy làm theo các bước sau (đối với ứng dụng facebook)

  1. Tải về openssl cho windows tại đây
  2. bây giờ giải nén vào ổ đĩa c
  3. nhắc cmd mở
  4. kiểu cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. sau đó gõ chỉ keytool -export -alias myAlias -keystore C:\Users\<your user name>\.android\myKeyStore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e
  6. Làm xong

Để lấy mã Chứng chỉ vân tay (MD5), hãy làm theo các bước sau

  1. đi tới - C: \ Tệp chương trình \ Java \ jdk1.6.0_26 \ bin
  2. trong thư mục bin chạy jarsigner.exetập tin
  3. nhắc cmd mở
  4. kiểu cd C:\Program Files\Java\jdk1.6.0_26\bin
  5. sau đó gõ lại vào cmd keytool -list -keystore "C:/Documents and Settings/<your user name>/.android/debug.keystore"
  6. nó sẽ hỏi mật khẩu Keystore ngay bây giờ. Mặc định là androidloại "" và nhập
  7. Làm xong.

Điều này làm việc cho tôi cho đến bước cuối cùng. Sau khi gõ "android", nó phun ra rác ... tôi đoán là nó không sử dụng mã hóa đúng không? Nếu tôi nhập vào một cái gì đó như "blah", nó sẽ cho tôi biết mật khẩu không chính xác. Vì vậy, nó biết tôi có mật khẩu chính xác khi tôi gõ "android"
ArtOfWarfare

Tôi thấy vấn đề là tôi đã rời khỏi danh sách cờ và -v
ArtOfWarfare

21

keytool là một phần của JDK.

Cố gắng để chuẩn bị %{JAVA_HOME}\cho câu lệnh exec hoặc c:\{path to jdk}\bin.


Tôi đặt tập tin cer và tập tin Truststore trong cùng một thư mục và sử dụng lệnh này:"%JAVA_HOME%\bin\keytool" -import -keystore truststore -file certificate.cer -alias my-alias
Todd Hale

13

KeyTool là một phần của JDK. Bạn sẽ tìm thấy nó, giả sử bạn đã cài đặt JDK với các cài đặt mặc định, trong$JAVA_HOME/bin


9

Robby PondCâu trả lời của có thể được khái quát để sử dụng JAVA_HOMEbiến môi trường và cũng bù cho bất kỳ khoảng trống nào có thể xảy ra trong đường dẫn (như Program Files):

"%JAVA_HOME%\bin\keytool" -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

4

keytool là một phần của jdk, nó phải là $ JAVA_HOME / bin / keytool


4

Keytool là một phần của SDK Java. Bạn sẽ có thể tìm thấy nó trong thư mục SDK Java của bạn, ví dụ: C: \ Program Files \ Java \ jdk1.6.0_14 \ bin


4

Trên cửa sổ cmd (cần chạy với tư cách Quản trị viên),

cd %JAVA_HOME% 

chỉ hoạt động nếu bạn đã thiết lập biến môi trường hệ thống của mình JAVA_HOME. Để thiết lập biến hệ thống cho đường dẫn của bạn, bạn có thể làm điều này

setx %JAVA_HOME% C:\Java\jdk1.8.0_121\

Sau đó, bạn có thể gõ

cd c:\Java\jdk1.8.0_121\bin

hoặc là

cd %JAVA_HOME%\bin

Sau đó, thực hiện bất kỳ lệnh nào được cung cấp bởi JAVA jdk's, chẳng hạn như

keytool -genkey -v -keystore myapp.keystore -alias myapp

Bạn chỉ cần trả lời các câu hỏi (tương đương với việc nhập các giá trị trên dòng cmd) sau khi nhấn enter! Khóa sẽ được tạo


3

keytool nằm trong thư mục bin JDK ($ JAVA_HOME / bin). JAVA_HOME là thư mục cài đặt JDK của bạn. Để sử dụng dòng lệnh đó, bạn cũng nên bao gồm $ JAVA_HOME / bin cho biến môi trường PATH của bạn.


3

Android: nơi chạy lệnh keytool trong Android

Lệnh Keytool có thể được chạy tại dấu nhắc lệnh dos của bạn, nếu JRE đã được đặt trong biến classpath của bạn.

Ví dụ: nếu bạn muốn lấy Dấu vân tay MD5 của Chứng chỉ gỡ lỗi SDK cho Android,

chỉ cần chạy lệnh sau ...

C:\Documents and Settings\user\.android>  keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

đâu C:\Documents and Settings\user\.android>là con đường chứa cái debug.keystorephải được chứng nhận.

Để biết thông tin chi tiết, vui lòng truy cập http://code.google.com.vn/android/add-ons/google-apis/mapkey.html#getdebugfingerprint


3

Tùy thuộc vào phiên bản Eclipse của bạn (Tôi đang sử dụng Kepler). Chuyển đến Windows> Tùy chọn> Android> Xây dựng.

Bạn sẽ tìm thấy đường dẫn vị trí của kho khóa gỡ lỗi cũng như dấu vân tay SHA1 (bạn chỉ có thể sao chép và sử dụng)


3

Tôi đã tìm thấy điều này trên một bài đăng khác, không nhận được nhiều sự ủng hộ, nhưng nó rất hữu ích cho tôi. Vì vậy, sẽ thêm nó ở đây.

Android Studio sẽ mang theo một keytool với nó.

C:\Program Files\Android\Android Studio\jre\bin

Bạn có thể xem bài viết của mình dưới đây bởi Richar Heap, với một tài liệu tham khảo hữu ích. Tôi đã nhìn thấy điều này trước đây nhưng quên nó. https://stackoverflow.com/a/51524526/4446406


2

KEYTOOL có trong JAVAC SDK. Vì vậy, bạn phải tìm thấy nó trong thư mục chứa javac


2

Nếu bạn đã cài đặt studio hình ảnh với Xamarin / hỗ trợ phát triển di động, bạn sẽ có cài đặt java ở đây C:\Program Files\Android\jdk\microsoft_dist_openjdk_{version}\bin\, như trường hợp của tôi.


1

keytoolđi kèm với JDK. Nếu bạn đang sử dụng cygwin thì đây có lẽ là con đường của bạn. Nếu không, bạn có thể đào xung quanh trong thư mục bin của JDK.

Có lẽ bạn sẽ cần phải sử dụng cygwin anyways để các ống vỏ ( |) hoạt động.


Bạn có thể cho tôi biết làm thế nào để chạy dưới lệnh? keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binary | openssl base64
Nguyễn Minh Bình

1
Vâng, tôi đã làm. và khi tôi chạy lệnh trên, CMD nói: 'openssl' không được nhận dạng dưới dạng lệnh bên trong hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó.
Nguyễn Minh Bình

Bạn có thể cần phải cài đặt gói openssl thông qua thiết lập của cygwin.
Matthew Willis

1
Tôi đã cài đặt gói openssl rồi. Vấn đề vẫn xảy ra :(
Nguyễn Minh Bình

Bạn có thể chạy openssl bằng chính nó? Những tùy chọn nào bạn thấy khi bạn gõ "mở" và nhấn tab?
Matthew Willis

1

Vài quan sát trong khi tôi đang gặp vấn đề tương tự (Windows). 1. Vỏ ống rất quan trọng. 2. Nếu bạn đang sử dụng OpenSSL hoặc Cygwin, chắc chắn bạn phải cài đặt nó. 3. keytool đi kèm với JDK, do đó bạn phải trỏ nó vào lệnh hoặc bạn có cd vào thư mục JDK / bin (nơi exe cư trú) 4. Kho khóa gỡ lỗi thường nằm ở ~ / .android / debug.keystore 5. mật khẩu là "android" cho dù bạn vượt qua nó hay gõ nó khi được nhắc. 6. Đối với tên bí danh, bạn có thể mở (KHÔNG LƯU, chỉ mở và đóng) tệp kho khóa với bất kỳ trình chỉnh sửa nào và đọc nó. 7. QUAN TRỌNG NHẤT - Có một sự khác biệt là chỉ định đường dẫn kho khóa trong dấu ngoặc kép và không có. Tôi đã làm cho nó hoạt động bằng cách sử dụng đường dẫn kho khóa trong dấu ngoặc kép. Như remix090378 đã nói và theo hướng dẫn, lệnh này thực sự đã hoạt động - cd C: \ Program Files \ Java \ jdk1.7.0_09 \ bin

keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ userName.android \ debug.keystore" -list -v


0

Trong trường hợp của tôi, tôi đã tạo một tệp APK bằng lệnh ionic cordova build android --prodvà tôi cần lấy dấu vân tay SHA-1 cho tệp APK hiện có. Đây là cách tôi có được nó bằng cách chạy lệnh sau trong thư mục Ứng dụng:

keytool -list -printcert -jarfile app-debug.apk

Vì vậy, về cơ bản, tôi đã chạy lệnh trên trong vị trí ứng dụng sau:

C:\myApp\platforms\android\app\build\outputs\apk\debug>keytool -list -printcert -jarfile app-debug.apk

Điều này đã cho tôi dấu vân tay SHA1 như: 7B:6B:AD:...

Hy vọng điều này sẽ giúp được ai đó!


0

Cho rằng bạn đã cài đặt Java và tốt nhất là JDK trong hệ thống của bạn (trả lời cho Windows vì bạn đã đề cập đến nó trong câu hỏi của bạn), bạn nên có tiện ích keytool trên binthư mục cài đặt của mình .

Nếu đó là trường hợp, điều bạn có thể làm tiếp theo là thêm thư mục bin đó vào PATHbiến môi trường của bản cài đặt Windows.

Lần tới, bạn sẽ mở một vỏ Windows và bạn sẽ gõ keytoolbạn sẽ có thể chạy tiện ích thực tế.

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.