Keystore เปลี่ยนรหัสผ่าน


267

ปัจจุบันฉันมีที่เก็บคีย์พร้อมรหัสผ่านเฉพาะที่ฉันควรรู้เท่านั้น ตอนนี้ฉันต้องให้สิทธิ์การเข้าถึงที่เก็บคีย์นั้นกับผู้อื่นดังนั้นฉันต้องการ:

1) เปลี่ยนรหัสผ่านเพื่อให้ฉันสามารถแบ่งปันกับผู้อื่นและให้พวกเขาลงชื่อ
2) สร้างรหัสผ่านที่แตกต่างกันและอนุญาตให้ลงชื่อเข้าใช้ด้วย

เป็นไปได้ไหม และ - ถ้าใช่ - อย่างไร

คำตอบ:


489

Keystore มีรหัสผ่านเดียวเท่านั้น คุณสามารถเปลี่ยนได้โดยใช้ keytool:

keytool -storepasswd -keystore my.keystore

ในการเปลี่ยนรหัสผ่านของคีย์:

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

6
เยี่ยมมากแล้วลายเซ็นของ apk จะเหมือนกันหรือไม่ เพียงแค่รหัสผ่านจะเปลี่ยน? นี่คือสิ่งที่ฉันต้องการเช่นกัน เลือกรหัสผ่านไม่ถูกต้องตอนนี้ต้องเปลี่ยน
Matthew Rudy

6
ลายเซ็นจะไม่เปลี่ยนแปลงเนื่องจากแอปไม่ได้ลงชื่อกับที่เก็บคีย์ แต่ด้วยใบรับรองที่คุณเก็บไว้ในที่เก็บคีย์
Marcin Orlowski

keyName เป็นชื่อของนามแฝงเช่น -alias Dipu
ılǝ

18
ลบรหัสผ่านสำหรับคีย์หนึ่งมีการตั้งรหัสผ่านเดียวกันกับการเก็บคีย์อาจจะมีประโยชน์สำหรับคน ;-)
Betlista

สิ่งนี้นำไปใช้กับ.jksเกินไปหรือไม่ keystore ของฉันคือ. jks สร้างโดย Android Studio

81

[ฉันจะได้อย่างไร] เปลี่ยนรหัสผ่านเพื่อให้ฉันสามารถแบ่งปันกับผู้อื่นและให้ลงชื่อ

ใช้ keytool:

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

สิ่งนี้เปลี่ยนรหัสผ่านสำหรับรหัสภายในด้วยหรือไม่
over_optimistic

4
ไม่ Keystore เป็นสิ่งหนึ่งรหัสผ่าน (พหูพจน์โน้ต) เป็นอีกสิ่งหนึ่ง ใช้keytool -keypasswd -alias <KeyName> -keystore my.keystoreเพื่อเปลี่ยนรหัสผ่านของรหัสส่วนตัว<KeyName>
Marcin Orlowski

5
หลังจากป้อน keystore pass -changeit จะทำให้เกิดข้อผิดพลาด keytool error: java.io.IOException: Keystore ถูกดัดแปลงหรือรหัสผ่านไม่ถูกต้อง
Dilip

@Dipu ฉันได้รับข้อผิดพลาดเดียวกัน คุณสามารถแก้ไขได้
ไหม

คุณสามารถตรวจสอบว่ารหัสผ่านมีการเปลี่ยนแปลง (ถ้าคุณมีข้อสงสัย) โดยการเรียกใช้คำสั่งเดียวกันที่แน่นอนอีกครั้ง หลังจากได้รับพร้อมท์สำหรับรหัสผ่านที่มีอยู่แล้วหากคุณป้อนรหัสผ่านที่ไม่ถูกต้องจะเป็นการบอกว่าคุณป้อนรหัสผ่านไม่ถูกต้องหรือไฟล์ได้รับการดัดแปลงและยกเลิก
ArtOfWarfare

48

การเปลี่ยนรหัสผ่านที่เก็บคีย์

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

การเปลี่ยนรหัสผ่านที่เก็บคีย์แทน

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

บันทึก:

**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
มันใช้งานได้ดีขอบคุณ! อีกสิ่งหนึ่งที่ฉันต้องการเพิ่มเพื่อเปลี่ยนชื่อนามแฝงที่ฉันต้องการและได้รับจากฟอรั่ม keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name
Jugal Panchal

ขณะเปลี่ยนรหัสผ่านชื่อแทนฉันได้รับ: UnrecoverableKeyException: ไม่สามารถกู้คืนกุญแจคำแนะนำใด ๆ
Foo

@Foo คุณเคยคิดว่าปัญหานี้หรือไม่? ฉันได้รับข้อผิดพลาดเดียวกัน
Ryan Newman

3
การเปลี่ยนรหัสผ่านที่เก็บคีย์แทนชื่อที่คุณแสดงไม่ทำงานจะไม่ถามรหัสผ่านใหม่ของคีย์สำหรับ <aliasname> มันถามรหัสผ่านที่มีอยู่สำหรับ <aliasname> ซึ่งไม่เป็นที่รู้จักในกรณีนี้
Shivaraj Patil

ฉันยังได้รับไม่สามารถกู้คืนกุญแจได้ในขั้นตอน: รหัสผ่านคีย์ใหม่สำหรับ <aliasname>: ความคิดใด ๆ ฉันเพิ่งสร้างคีย์ใน Android Studio อัปโหลดรู้ว่าฉันต้องอัปเดตบางอย่างและตอนนี้มันใช้งานไม่ได้: /
Dewald Els

22

การเปลี่ยนรหัสผ่านสำหรับคีย์myaliasภายในเก็บคีย์mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias

"Inside key" คืออะไร?
IgorGanapolsky

5
ขออภัยสำหรับคำอธิบายที่ไม่ดีของฉัน คุณสามารถเปลี่ยนรหัสผ่านของที่เก็บคีย์หรือรหัสผ่านของหนึ่งในคีย์ที่คุณเก็บไว้ในที่เก็บคีย์ นั่นคือสิ่งที่ฉันหมายถึงด้วย "Inside key"
OriolJ

9

หากที่เก็บคีย์มีรายการคีย์อื่น ๆ ที่มีรหัสผ่านแตกต่างกันคุณจะต้องเปลี่ยนคีย์เหล่านั้นหรือคุณสามารถแยกคีย์ของคุณเป็นที่เก็บคีย์อื่นโดยใช้คำสั่งด้านล่าง

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

มีคำตอบมากมายที่นี่ แต่ถ้าคุณพยายามเปลี่ยนรหัสผ่าน jks บน Mac ใน Android Studio นี่คือขั้นตอนที่ง่ายที่สุดที่ฉันสามารถหาได้

1) เปิด Terminal และ cd ไปยังตำแหน่งที่. jks ของคุณ

2) keytool - storewd - ใหม่ NEWPASSWORD - เก็บ YOURKEYSTORE.jks

3) ป้อนรหัสผ่านปัจจุบันของคุณ


5

KeyStore Explorerเป็นการทดแทน GUI โอเพนซอร์สสำหรับ keytool อรรถประโยชน์บรรทัดคำสั่ง Java และ jarsigner KeyStore Explorer นำเสนอฟังก์ชั่นการใช้งานและอื่น ๆ ผ่านส่วนต่อประสานกราฟิกกับผู้ใช้ที่เข้าใจง่าย

  1. เปิด KeyStore ที่มีอยู่
  2. เครื่องมือ -> ตั้งรหัสผ่าน KeyStore

ทางออกที่ดีที่สุด! ดีกว่าเขียนถึงเครื่อง การใช้ซอฟต์แวร์นี้ - ฉันสามารถเปลี่ยนรหัสผ่านและเพิ่มคู่กุญแจใหม่ได้ แนะนำเป็นอย่างยิ่ง
Dan Alboteanu

4

สำหรับการเปลี่ยนแปลงแบบเต็มโปรแกรม (เช่นติดตั้งโปรแกรม) และไม่มีการแจ้งเตือน

#!/bin/bash -eu

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

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

การเปิดเผยแบบเต็ม: ฉันไม่แนะนำให้รันบรรทัดคำสั่งนี้ในเชลล์เนื่องจากรหัสผ่านเก่าและใหม่จะถูกบันทึกไว้ในประวัติเชลล์และมองเห็นได้ในคอนโซล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.