Kho khóa thay đổi mật khẩu


267

Tôi hiện đang có một kho khóa, với một mật khẩu cụ thể mà chỉ tôi nên biết. Bây giờ tôi cần cấp quyền truy cập vào kho khóa đó cho người khác, vì vậy tôi muốn:

1) Thay đổi mật khẩu, vì vậy tôi có thể chia sẻ nó với người khác và để họ ký
2) Tạo một mật khẩu khác và cho phép họ ký với nó.

Điều này có thể không? và - nếu có - làm thế nào?

Câu trả lời:


489

Kho khóa chỉ có một mật khẩu. Bạn có thể thay đổi nó bằng keytool:

keytool -storepasswd -keystore my.keystore

Để thay đổi mật khẩu của khóa:

keytool -keypasswd  -alias <key_name> -keystore my.keystore

6
Tuyệt vời, vậy chữ ký của apk sẽ giống nhau? Chỉ cần mật khẩu sẽ thay đổi? Đây là những gì tôi cần quá. Chọn một mật khẩu xấu, bây giờ cần phải thay đổi nó.
Matthew Rudy

6
Chữ ký sẽ không thay đổi, vì ứng dụng KHÔNG được ký với kho khóa, nhưng với chứng chỉ bạn giữ trong kho khóa.
Marcin Orleansowski

keyName là tên của bí danh, vd. -alias Dipu
ılǝ

18
Để xóa mật khẩu cho khóa, người ta phải đặt cùng một mật khẩu như cho kho khóa, có thể hữu ích cho ai đó ;-)
Betlista

Điều này áp dụng cho .jksquá? Kho khóa của tôi là .jks được tạo bởi Android Studio

81

[Làm thế nào tôi có thể] Thay đổi mật khẩu, vì vậy tôi có thể chia sẻ nó với người khác và để họ ký

Sử dụng keytool:

keytool -storepasswd -keystore /path/to/keystore
Enter keystore password:  changeit
New keystore password:  new-password
Re-enter new keystore password:  new-password

Điều này có thay đổi mật khẩu cho khóa bên trong không?
over_optimistic

4
Không. Keystore là một thứ, mật khẩu (ghi chú số nhiều) là một thứ khác. Sử dụng keytool -keypasswd -alias <KeyName> -keystore my.keystoređể thay đổi mật khẩu của khóa riêng<KeyName>
Marcin Orleansowski

5
sau khi nhập keystore pass -changeit, nó sẽ báo lỗi keytool: java.io.IOException: Keystore bị giả mạo hoặc mật khẩu không chính xác
Dilip

@Dipu, tôi nhận được lỗi tương tự. Bạn đã xoay sở để giải quyết điều đó chưa
JiteshW 7/2/2016

Bạn có thể xác minh rằng mật khẩu đã thay đổi (nếu bạn nghi ngờ) bằng cách chạy lại chính xác cùng một lệnh. Sau khi nó nhắc mật khẩu hiện có, nếu bạn nhập mật khẩu không chính xác, nó sẽ cho biết bạn đã nhập sai mật khẩu hoặc tệp đã bị giả mạo và hủy bỏ.
ArtOfWarfare

48

Thay đổi mật khẩu kho khóa

$ keytool -storepasswd -keystore keystorename
Enter keystore password:  <old password>
New keystore password: <new password>
Re-enter new keystore password: <new password>

Thay đổi mật khẩu bí danh kho khóa

$keytool -keypasswd -keystore keystorename -alias aliasname
Enter keystore password:  
New key password for <aliasname>: 
Re-enter new key password for <aliasname>:

Ghi chú:

**Keystorename**: name of your keystore(with path if you are indifferent folder) 
**aliasname**: alias name you used when creating (if name has space you can use \) 
for example: $keytool -keypasswd -keystore keystorename -alias stop\ watch

1
Nó hoạt động cảm ơn bạn! Một điều nữa tôi muốn thêm vào để thay đổi tên bí danh mà tôi muốn và nhận được từ một diễn đàn. keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name
Panchal

Trong khi thay đổi mật khẩu bí danh tôi nhận được: UnrecoverableKeyException: Không thể khôi phục khóa Bất kỳ đề xuất nào?
Foo

@Foo bạn đã bao giờ tìm ra vấn đề đó chưa? Tôi đang gặp lỗi tương tự
Ryan Newman

3
Thay đổi mật khẩu bí danh lưu trữ khóa mà bạn từng hiển thị không hoạt động, Nó sẽ không hỏi mật khẩu khóa mới cho <bí danh>. Nó hỏi mật khẩu hiện tại cho <bí danh> không được biết đến trong trường hợp này.
Shivaraj Patil

Tôi vẫn nhận được khóa khôi phục Không thể ở bước: Mật khẩu khóa mới cho <bí danh>: Có ý tưởng nào không? Tôi vừa tạo khóa trong Android Studio, đã tải lên, nhận ra rằng tôi phải cập nhật một cái gì đó và bây giờ nó không hoạt động: /
Dewald Els

22

Để thay đổi mật khẩu cho một khóa myaliasbên trong kho khóa mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias

"Chìa khóa bên trong" là gì?
IgorGanapolsky

5
Xin lỗi vì lời giải thích tồi tệ của tôi. Bạn có thể thay đổi mật khẩu của kho khóa hoặc mật khẩu của một trong các khóa bạn đã lưu trên kho khóa. Đó là những gì tôi muốn nói với "phím bên trong".
OriolJ

9

Nếu kho khóa chứa các mục nhập khóa khác với mật khẩu khác, bạn cũng phải thay đổi chúng hoặc bạn có thể cách ly khóa của mình với kho khóa khác bằng lệnh bên dưới,

keytool -importkeystore  -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

7

Có rất nhiều câu trả lời ở đây, nhưng nếu bạn đang cố gắng thay đổi mật khẩu jks trên máy Mac trong Android Studio. Dưới đây là các bước dễ nhất tôi có thể tìm thấy

1) Mở Terminal và cd đến nơi .jks của bạn được đặt

2) keytool -storepasswd -new NEWPASSWORD -keystore YOUKEYSTORE.jks

3) nhập mật khẩu hiện tại của bạn


5

KeyStore Explorer là một thay thế GUI nguồn mở cho các tiện ích dòng lệnh Java và keytool và jarsigner. KeyStore Explorer trình bày chức năng của họ và hơn thế nữa, thông qua giao diện người dùng đồ họa trực quan.

  1. Mở một KeyStore hiện có
  2. Công cụ -> Đặt mật khẩu KeyStore

giải pháp tốt nhất! Tốt hơn là viết cho thiết bị đầu cuối. Sử dụng phần mềm này - tôi đã có thể thay đổi mật khẩu và thêm các cặp khóa mới. Rất khuyến khích
Dan Alboteanu

4

Để thay đổi chương trình đầy đủ (ví dụ: cài đặt chương trình) và không nhắc nhở

#!/bin/bash -eu

NEWPASSWORD=${1}
OLDPASSWORD=${2}

keytool -storepasswd -new "${NEWPASSWORD}" \
  -storepass "${OLDPASSWORD}" \
  -keystore /path/to/keystore

Tiết lộ đầy đủ: Tôi KHÔNG khuyên bạn nên chạy dòng lệnh này trong shell, vì mật khẩu cũ và mới sẽ được lưu trong lịch sử của shell và hiển thị trong bảng điều khiển.

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.