วิธีจัดการรหัสผ่าน KeyStore ที่หายไปใน Android


102

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

หากใครเคยมีปัญหาเช่นนี้หรือประสบปัญหาคุณสามารถให้คำแนะนำอะไรเพื่อช่วยแก้ไขสถานการณ์ได้บ้าง? โชคดีที่เป็นแอปฟรี


Zach Klippenstein ใน Google+ ก็มีปัญหาเดียวกันกับคุณ ติดตามกระทู้ได้ที่นี่ครับ
Freelance PHP Programmer

หากคุณใช้ React Native คุณสามารถค้นหาได้ใน gradle.properties
colemerrick

คำตอบ:


44

ดูลิงค์นี้

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

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


ดังนั้นสิ่งที่ดีที่สุดที่ฉันทำได้คืออัปโหลดแอปพลิเคชันเวอร์ชันอื่นและพยายามให้คำอธิบายจากชื่อหรือจากแอปก่อนหน้าหรืออะไรทำนองนั้น ขวา?
irobotxx

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

คุณมี 3 ครั้งที่จะพยายามทำให้ถูกต้อง หากลองครั้งที่สามคุณคิดผิดคุณต้องปิดวิซาร์ดและเปิดใหม่ แม้ว่าคุณจะป้อนรหัสผ่านที่ถูกต้องในการลองครั้งที่ 4 แต่ก็จะบอกว่าผิด ฉันพบสิ่งนี้โดยพยายามเรียกใช้ keytool ผ่านทางบรรทัดคำสั่งและสังเกตขีด จำกัด การลองใหม่
The Muffin Man

2
คุณสามารถสร้างไฟล์ jks ใหม่และขอให้ Google อนุญาตให้คุณลงชื่อแอปก่อนหน้าของคุณได้
Rahul Gaur

1
@lorenzo ตรวจสอบสิ่งนี้ด้วยนี่คือบทความหลักค้นหา "สูญหาย" ในลิงก์ที่ 2
Rahul Gaur

234

เพิ่งพบปัญหานี้ด้วยตัวเอง - โชคดีที่ฉันสามารถค้นหารหัสผ่านในไฟล์ชั่วคราวของ Gradle ในกรณีที่ใครมาที่นี่:

ลองค้นหาไฟล์นี้

..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin

or

.gradle/3.5/taskHistory/taskHistory.bin
.gradle/5.1.1/executionHistory/executionHistory.bin
.gradle/caches/5.1.1/executionHistory/executionHistory.bin

และค้นหา

storePassword

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

อยากจะโยนมันออกไปที่นี่บางทีมันอาจจะช่วยใครสักคนได้ในที่สุด


แก้ไข: เพิ่มข้อมูลเชิงลึกใหม่จากความคิดเห็นเพื่อให้มองเห็นได้ชัดเจนขึ้น

ขอบคุณ Vivek Bansal, Amar Ilindra และ Uzbekjon สำหรับสิ่งเหล่านี้


35
ให้เหรียญชายคนนี้ ... เพื่อให้คนอื่นค้นหารหัสผ่านได้เร็วขึ้น: ค้นหา ".keyPassword" สองสามครั้งคุณจะเห็นรหัสผ่านของคุณ ขอบคุณมาก @ EldoRado1239 :)
Kermia

9
ลอง. storePassword
Vivek Bansal

6
หากคุณใช้ OSX / Linux คุณสามารถเรียกใช้สิ่งนี้เพื่อรับรายการรหัสผ่านที่เก็บไว้ได้อย่างง่ายดายstrings taskArtifacts.bin | grep storePassword -A1 และยังไงก็ตามขอบคุณ ElDoRado1239 - คุณเพิ่งช่วยฉันครั้งใหญ่
James Nick Sears

4
ในกรณีที่คุณไม่พบเส้นทางข้างต้นให้ลองใช้เส้นทางนี้ .. Project \ .gradle \ 3.5 \ taskHistory \ taskHistory.bin
Amar Ilindra

2
ช่วยฉันสามารถค้นหาไดเรกทอรีใด ๆ ที่กล่าวถึงใน5.1.1gradle
James Christian Kaguo

44

ในกรณีที่ระบุรหัสผ่านผิดแม้เพียงครั้งเดียวรหัสผ่านจะยังคงพูดในครั้งต่อไป:

ที่เก็บคีย์ถูกดัดแปลงหรือรหัสผ่านไม่ถูกต้อง

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


8
คุณหมายถึงอะไร "ปิดวิซาร์ดการส่งออก"
Sagar Chavada

ตัวช่วยสร้างการส่งออกคืออะไร
Jigar Fumakiya

38

เดรัจฉานคือทางออกที่ดีที่สุดของคุณ!

นี่คือสคริปต์ที่ช่วยฉัน:

https://code.google.com/p/android-keystore-password-recover/wiki/HowTo

คุณสามารถระบุรายการคำที่รหัสผ่านอาจรวมไว้เพื่อการกู้คืนที่รวดเร็วมาก (สำหรับฉันมันใช้งานได้ใน <1 วินาที)


น่าเสียดายที่มันไม่ได้ผลสำหรับฉัน ฉันให้รายการคำศัพท์และต่อมาฉันพบว่ามันเป็นสามคำเหล่านี้ตามลำดับที่แน่นอน แต่ฉันต้องคิดออก ขอบคุณสำหรับการแบ่งปัน แต่ดีใจที่ได้ช่วยเหลือคนอื่น
Teo Inke

มันได้ผลสำหรับฉันไม่มีที่ติ! เพียง 10 วินาทีกับพจนานุกรมที่ถูกต้อง
gyss

มันใช้งานได้สำหรับการกู้คืนรหัสผ่านสำหรับคีย์ภายใน แต่ฉันจะทำอย่างไรถ้าฉันทำรหัสผ่านสำหรับที่เก็บคีย์หายด้วย? @kiruwka บอกว่านั่นไม่ใช่ปัญหาในคำตอบของเขา ... เขาหมายถึงอย่างนั้นจริงหรือ?
SebasSBM

27

ไปที่ taskHistory

ในที่สุดฉันก็พบทางออกหลังจากใช้เวลาสองวัน ...

ทำตามขั้นตอนเหล่านี้:

  1. ไปที่โครงการ
  2. ใน. gradle ค้นหาโฟลเดอร์รุ่น gradle ของคุณในกรณีของฉันมันคือ 4.1 (ดูรูป)
  3. ขยายโฟลเดอร์ 4.1 จากนั้นในโฟลเดอร์ taskHistory คุณจะพบไฟล์ taskHistory.bin
  4. เปิดไฟล์ taskHistory.bin ใน android studio เอง
  5. ค้นหา ".storePassword" .. เท่านี้คุณก็มีรหัสผ่านที่เก็บคีย์แล้ว

สิ่งนี้ใช้ได้ผลกับฉันจริงๆ

ลองรหัสนี้แล้วมีความสุข !!!


การใช้ Android 3.5.3 น่าเสียดายที่ไฟล์. bin ไม่มีข้อมูลที่เกี่ยวข้อง
RominaV

19

ในยูทิลิตี้ MAC Launch Console และเลื่อนลงไปที่ ~ / Library / Logs -> AndroidStudio -> idea.log.1 (หรือหมายเลขบันทึกเก่า) จากนั้นฉันค้นหา "ที่เก็บคีย์" และมันควรจะปรากฏที่ไหนสักแห่งในบันทึก

คำถามเดิม: ลิงค์


สิ่งนี้ช่วยชีวิตฉันไว้ที่ลูกค้า - ตัวเลือกอื่น ๆ ทั้งหมดไม่สามารถใช้งานได้เพราะเราใช้สคริปต์อึกร่วมกับแอปพลิเคชัน
Cordova

ฉันไม่สามารถหาได้โดยใช้ "keystore" แต่ใช้ "key.password"
Ceed

19

SOLUTION 2019 (Windows, Android Studio 3.3, gradle 4.10):

วิธีนี้ใช้ได้เฉพาะเมื่อทำเครื่องหมายในช่อง "จำรหัสผ่าน" ไว้ก่อนหน้านี้

ก่อนอื่น taskArtifacts.bin ไม่มีอยู่สำหรับ gradle และ idea.log เวอร์ชันนี้จะแสดงเครื่องหมายดอกจันสำหรับรหัสผ่าน นี่เป็นวิธีแก้ปัญหาสมัยก่อนที่ไม่ได้ผลสำหรับฉัน

ที่ฉันพบรหัสผ่านข้อความที่ชัดเจน: C: \ Users \ {username} \ AndroidStudioProjects \ {project} \ app \ build \ intermediates \ sign_config \ release \ out \ sign-config.json

คีย์: mStorePassword และ mKeyPassword

ฉันหวังว่ามันจะช่วยคนอื่นได้


ว้าว! มันใช้งานได้ใน Ubuntu ด้วย! ไม่รู้จะขอบคุณยังไง!
زياد

สามารถยืนยันได้ว่ามันยังทำงานบน AS 3.5.3 - ขอบคุณ!
RominaV

17

ในความเป็นจริงการสูญเสียkeystore passwordไม่ใช่ปัญหา
คุณสามารถสร้างที่เก็บคีย์ใหม่และตั้งรหัสผ่านใหม่โดยใช้keytoolคำสั่งด้านล่าง คุณไม่จำเป็นต้องใช้รหัสผ่านที่เก็บคีย์ดั้งเดิมสำหรับมัน:

keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore

เมื่อได้รับแจ้งให้สร้างรหัสผ่านสำหรับคุณnew.keystoreและรหัสผ่านแหล่งเก็บคีย์ (ซึ่งคุณหายไป) เพียงแค่กดEnter
คุณจะได้รับคำเตือนเกี่ยวกับความสมบูรณ์ที่ไม่ได้ตรวจสอบและคุณจะได้รับ new.keystore ของคุณเหมือนกับต้นฉบับด้วยรหัสผ่านที่ตั้งใหม่

เหตุผลนี้keystore passwordใช้เพื่อให้เกิดความสมบูรณ์keystoreเท่านั้นโดยจะไม่เข้ารหัสข้อมูลด้วยตรงกันข้ามprivate key passwordซึ่งจะทำให้คีย์ส่วนตัวของคุณเข้ารหัส

โปรดทราบว่าคุณต้องรู้ว่าคุณprivate key passwordต้องลงนามแอปของคุณ ถ้ามันเหมือนกับลืมไปkeystore passwordแล้วคุณสามารถใช้ bruteforce ได้ตามคำตอบของ @ Artur

วิธีนี้ใช้ได้ผลกับฉันเสมอ


ฉันลองแล้วและทำให้คุณป้อนรหัสผ่านสำหรับปลายทาง หากคุณกด Enter ค้างไว้ระบบจะแจ้งให้คุณลองอีกครั้งในภายหลังหลังจากลอง 3 ครั้ง
The Muffin Man

@TheMuffinMan ขอโทษไม่ได้ทำให้ปัญหาของคุณทั้งหมด คุณจัดการสร้างที่เก็บคีย์ใหม่ด้วย pw ที่เก็บคีย์ใหม่หรือไม่?
kiruwka

1
นี้ได้รับฉัน keystore ใหม่ jarsigner: key associated with mykey-release not a private keyแต่เมื่อฉันพยายามที่จะใช้ที่เก็บคีย์ใหม่ผมได้รับข้อความแสดงข้อผิดพลาด ฉันพลาดอะไรไปรึเปล่า?
phihag

@phihag ฉันประสบปัญหาเดียวกัน คุณพบวิธีแก้ปัญหาหรือไม่?
Teddy Kossoko

13

ฉันรู้สึกว่าต้องให้คำตอบเพราะนี่ไม่ใช่แค่ในความคิดเห็น ชอบที่@ ElDoRado1239 พูดในคำตอบของเขา (อย่าลืมโหวตคำตอบของเขานะ)

  • มองหา..Project\.gradle\2.4\taskArtifacts\taskArtifacts.binในกรณีของฉันเป็น..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.binเพราะฉันใช้gradle 2.2.1
  • จากนั้นมองหาstorePasswordเช่นที่ @Moxet Khan กล่าวในความคิดเห็น ... ในกรณีของฉันอยู่ที่บรรทัดsigningConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias

หวังช่วยคนอื่น !!!


12

โชคดีที่ฉันพบรหัสผ่านที่หายไปพร้อมกับเส้นทางที่เก็บคีย์และชื่อนามแฝงจากบันทึกสตูดิโอ Android ของฉัน

หากคุณใช้งานเครื่องที่ใช้ linux / Unix

ไปที่ไดเร็กทอรี Library Logs

cd ~/Library/Logs/

ในนั้นหากคุณจำเวอร์ชันสตูดิโอ Android ที่คุณใช้สร้าง APK รุ่นล่าสุดได้ ไปที่ไดเรกทอรีนั้น

เช่น cd AndroidStudio1.5 /

ในนั้นคุณจะพบไฟล์บันทึก ในไฟล์บันทึกใด ๆ (idea.log) คุณจะพบข้อมูลรับรองที่เก็บคีย์ของคุณ

ตัวอย่าง

-Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, 
-Pandroid.injected.signing.store.password=mystorepassword, 
-Pandroid.injected.signing.key.alias=myandroidkey, 
-Pandroid.injected.signing.key.password=mykeypassword,

ฉันหวังว่านี่จะช่วยสำหรับผู้ใช้ Android Studio


11
ฉันคิดว่าสิ่งนี้ใช้ไม่ได้กับ AndroidStudio3.0 ข้อมูลทั้งหมดจะแสดงเป็น ******* โดยมีความยาวเท่ากันสำหรับทั้งรหัสผ่านที่เก็บคีย์และรหัสผ่านคีย์
TheLearner

นี่คือที่ที่ฉันพบรหัสผ่านขอบคุณสำหรับโพสต์ ฉันแก้ไขคำตอบด้านบนด้วย สถานที่ทั้งสองนี้เป็นผู้ช่วยฉันหวังว่าในอนาคต Keystore Tool ใน Android Studio จะเตือนให้ผู้ใช้บันทึกรหัสผ่านเนื่องจากพวกเขาจะต้องใช้เวลาหนึ่งปีหรือ 2 ปีหลังจากนั้นสำหรับรุ่นอื่น
MG Developer

11

อาจจะช้าไปหน่อย แต่จะช่วยใครบางคนได้อย่างแน่นอนคุณสามารถค้นหารหัสผ่านได้หากจำบางอย่างได้ให้ลองค้นหาเช่น

signConfig.storePassword

นอกจากนี้หากคุณลืมนามแฝงที่สำคัญคุณสามารถค้นหาได้ที่นี่ซึ่งค้นหาบางอย่างเช่นsignConfig.keyAlias

Project.gradle \ 3.3 \ taskArtifacts \ taskArtifacts.bin

หวังว่ามันจะช่วยใครสักคน


9

สำหรับใครก็ตามที่อาจพบปัญหานี้ฉันต้องการแบ่งปันคำตอบที่อาจเป็นเช่นนั้นสำหรับคุณหรือสำหรับคนอื่น ๆ ที่กำลังอ่านบทความนี้ (เช่นตัวฉันเอง)

ฉันใช้ Eclipse และสร้างที่เก็บคีย์ในนั้นสำหรับรีลีส 1.0 ของฉัน กรอไปข้างหน้า 3 เดือนและฉันต้องการอัปเดตเป็น 1.1 เมื่อฉันเลือกส่งออก ... ใน Eclipse และเลือกที่เก็บคีย์นั้นไม่มีรหัสผ่านใดที่ฉันจำได้ว่าใช้งานได้ ทุกครั้งที่มีการแจ้งว่า"Keystore ถูกดัดแปลงหรือรหัสผ่านไม่ถูกต้อง" มันมาถึงจุดที่ฉันพร้อมที่จะรันโปรแกรมกำลังดุร้ายกับมันตราบเท่าที่ฉันสามารถยืนได้ (หนึ่งสัปดาห์หรือมากกว่านั้น) เพื่อพยายามให้มันใช้งานได้

โชคดีที่ฉันลงชื่อเข้าใช้ไฟล์. apk ที่ไม่ได้ลงชื่อนอก Eclipse Voila - ได้ผล! รหัสผ่านของฉันถูกต้องตลอดเวลา! ฉันไม่แน่ใจว่าเพราะเหตุใด แต่การลงชื่อเข้าใช้ Eclipse ผ่านเมนูส่งออกได้รายงานข้อผิดพลาดแม้ว่ารหัสผ่านของฉันจะถูกต้องก็ตาม

ดังนั้นหากคุณได้รับข้อผิดพลาดนี้ต่อไปนี้คือขั้นตอนของฉัน (นำมาจากเอกสาร Android ) เพื่อช่วยให้คุณเตรียม apk ของคุณให้พร้อมสำหรับตลาด

หมายเหตุ: ในการรับ apk ที่ไม่ได้ลงชื่อจาก Eclipse: คลิกขวาที่โปรเจ็กต์> เครื่องมือ Android> ส่งออกแอปพลิเคชันที่ไม่ได้ลงชื่อ

  1. ลงนามไฟล์ apk ที่ไม่ได้ลงชื่อด้วยที่เก็บคีย์

    ก. เปิดพรอมต์ cmd ของผู้ดูแลระบบแล้วไปที่ "c: \ Program Files \ Java \ jdk1.6.0_25 \ bin" หรือ java เวอร์ชันใดก็ได้ที่คุณมี (ซึ่งคุณได้คัดลอกไฟล์ apk ที่ไม่ได้ลงชื่อและที่เก็บคีย์ของคุณ)

    ข. ที่พรอมต์ cmd พร้อมไฟล์ที่เก็บคีย์และ apk ที่ไม่ได้ลงชื่อในไดเร็กทอรีเดียวกันให้พิมพ์คำสั่งนี้: jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk myaliasnamefromkeystore

    ค. มันจะขึ้นว่า: "Enter Passphrase for keystore:" ป้อนและกด Return

    ง. ===> ความสำเร็จมีลักษณะดังนี้:

    adding: META-INF/MANIFEST.MF
    ...
    signing: classes.dex
    

    จ. เวอร์ชันที่ไม่ได้ลงชื่อจะถูกเขียนทับดังนั้นไฟล์ apk ที่ลงชื่อของคุณจะอยู่ที่ชื่อไฟล์เดียวกับไฟล์ที่ไม่ได้ลงชื่อ

  2. ใช้ ZipAlign เพื่อบีบอัดไฟล์ apk ที่เซ็นชื่อเพื่อแจกจ่ายในตลาด

    ก. เปิดพรอมต์ cmd ของผู้ดูแลระบบแล้วไปที่ "c: \ AndroidSDK \ tools" หรือที่ใดก็ตามที่คุณติดตั้ง Android SDK

    ข. ป้อนคำสั่งนี้: zipalign -v 4 signed.apk signedaligned.apk

    ค. ===> ความสำเร็จมีลักษณะดังนี้:

    Verifying alignment of signedaligned.apk (4)
    50 META-INF/MANIFEST.MF (OK - compressed)
    ...
    1047129 classes.dex (OK - compressed)
    Verification succesful
    

    ง. ไฟล์ที่เซ็นชื่อและจัดแนวอยู่ที่ signedaligned.apk (ชื่อไฟล์ที่คุณระบุในคำสั่งก่อนหน้า)

========> พร้อมที่จะส่งไปยัง MARKETPLACE


สาเหตุที่คุณได้รับข้อผิดพลาดเกี่ยวกับรหัสผ่านไม่ถูกต้องคือ keyalg / sigalg / Digestalg ที่ตั้งไว้โดยปริยายนั้นผิด Java เวอร์ชันต่างๆมีค่าเริ่มต้นที่แตกต่างกันสำหรับค่าเหล่านี้
Will Vanderhoef

ฉันรู้สึกตึงเครียดเมื่อคราสปฏิเสธรหัสผ่านของฉัน แต่มันก็ใช้ได้ผลเมื่อฉันพยายามด้วยวิธีของคุณขอบคุณ!
Hardik4560

9

หลังจากใช้เวลาเกือบหนึ่งวันในการค้นหาตัวเลือกที่เป็นไปได้ในการกู้คืนรหัสผ่านที่เก็บคีย์ที่สูญหายใน Android Studio ฉันพบ 4 วิธีที่เป็นไปได้ดังต่อไปนี้:

  1. ใช้AndroidKeystoreBruteเพื่อดึงรหัสผ่านของคุณ วิธีนี้มีประโยชน์มากเมื่อคุณลืมรหัสผ่านบางส่วนหมายความว่าคุณยังมีคำแนะนำเกี่ยวกับรหัสผ่านอยู่ในใจ

  2. คุณยังสามารถเรียกดูผ่านไฟล์บันทึกของ Android Studio ได้หากคุณได้เปิดตัวแอปก่อนหน้านี้ (ซึ่งคุณค้นหารหัสผ่านที่เก็บคีย์) ด้วยเครื่องเดียวกัน อ้างถึงไดเร็กทอรีต่อไปนี้:

    Mac OSX

    ~ / Library / Logs / AndroidStudio / idea.log.1

    Linux (ตำแหน่งที่เป็นไปได้)

    / home / user_name / AndroidStudio / system / log

    Windows (ตำแหน่งที่เป็นไปได้)

    C: \ Users \ user_name \ AndroidStudio \ system \ log

    และค้นหาPandroid.injected.signing.key.passwordภายในไฟล์ คุณจะเห็นรหัสผ่านหากคุณเคยลงชื่อแอปด้วย Android Studio เวอร์ชันเดียวกับที่คุณกำลังค้นหาอยู่

  3. คุณยังสามารถดึงรหัสผ่านผ่านไดเร็กทอรี. gradle ของโปรเจ็กต์ของคุณ มองหาเส้นทางต่อไปนี้

    project_directory / .gradle / 2.4 / taskArtifacts / taskArtifacts.bin

    หมายเหตุ: ดูเหมือนจะใช้ไม่ได้กับ Gradle เวอร์ชันใหม่กว่า (2.10 ขึ้นไป)

  4. หากวิธีแก้ปัญหาข้างต้นไม่ได้ผลคุณสามารถลองใช้วิธีนี้ได้ แต่สำหรับวิธีนี้คุณต้องมีแอป Android Studio IDE หรือการตั้งค่าเป็นค่ากำหนดซึ่งรหัสผ่านที่เก็บคีย์โครงการของคุณได้รับการบันทึกไว้ก่อนหน้านี้ (ใช้ตัวเลือกจดจำรหัสผ่านในขณะที่ลงนาม แอป) คุณสามารถรับค่ากำหนด IDE ได้จากเส้นทางต่อไปนี้:

    Mac OSX

    ~ / Library / Logs / AndroidStudio / idea.log.1

    Linux (ตำแหน่งที่เป็นไปได้)

    / home / user_name / AndroidStudio

    Windows (ตำแหน่งที่เป็นไปได้)

    c: \ user \ ชื่อผู้ใช้ \ .AndroidStudio

    เพียงใช้ Android Studio IDE รุ่นเก่าหากคุณมีหรือนำเข้าการกำหนดลักษณะของ IDE เก่าไปยัง IDE ใหม่และวางไฟล์ที่เก็บคีย์ไว้ในเส้นทางเดียวกับที่เคยลงชื่อไว้และบันทึกรหัสผ่านครั้งล่าสุด

    ด้วยวิธีนี้เมื่อคุณเปิดโครงการและลอง Build-> Generate Signed APK แล้วเลือกไฟล์ที่เก็บคีย์จากตำแหน่งเก่า ระบบจะดึงรหัสผ่านโดยอัตโนมัติและสร้าง APK ที่ลงนามสำหรับรุ่นต่อไป

    เมื่อ APK รุ่นสร้างสำเร็จคุณสามารถทำตามตัวเลือก 2 ที่กล่าวถึงก่อนหน้านี้เพื่อตรวจสอบรหัสผ่านจากไฟล์บันทึกของคุณสำหรับ APK รุ่นที่เพิ่งสร้างขึ้น


การค้นหาในบันทึกช่วยเป็นเสน่ห์ ขอบคุณคุณช่วยให้ฉันสงบ
rommex

ฉันได้พบกับ idea.log 1. ฉันจะเปิดมันได้อย่างไร?
KZoNE

พวกคุณคือผู้ช่วยชีวิต พบของฉันใน idea.log.12 - เพียงแค่เปิดเป็น txt!
Victor

7

ขั้นแรกดาวน์โหลด AndroidKeystoreBrute_v1.05.jar จากนั้นทำตามภาพที่กำหนดป้อนคำอธิบายภาพที่นี่

เตรียม wordlistfile เช่น (wordlist.txt) ในไฟล์นั้นให้คำใบ้ของคุณเช่น

คำแนะนำรหัสผ่าน:

ผู้ใช้

ผู้ใช้

รหัสผ่าน

รหัสผ่าน

pa55word

รหัสผ่าน

@

*

#

$

&

1

2

123

789

คุณจะได้รับรหัสผ่านของคุณ


สวัสดีฉันไม่ได้รับผล โปรดช่วย
Nimisha V

@NimishaV คุณเผชิญกับปัญหาอะไร
Srinivas Keerthiprakasam

7

วิธีที่ง่ายที่สุดในการรับรหัสผ่านที่เก็บคีย์

project_folder \ app \ build \ intermediates \ sign_config \ release \ out \ sign-config.json

ลองดูการค้นหาไฟล์นี้สำหรับStorePasswordในการลงนาม config.json

{"mName":"externalOverride","mStoreFile":"C:\\Users\\dAvInDeR\\Desktop\\KEYSTORE\\keystore.jks","mStorePassword":"1234@#abcd","mKeyAlias":"uploadkey","mKeyPassword":"1234@#abcd","mStoreType":"jks","mV1SigningEnabled":false,"mV2SigningEnabled":false}

หวังว่ามันจะช่วยคุณได้อย่างเต็มที่


2
นี่เป็นรหัสผ่านสุดท้ายที่คุณลองจริงๆอาจเป็นเพราะผู้ใช้ลองใช้รหัสผ่านอื่น จากนั้นพวกเขาจะได้รับรหัสผ่านผิด
Amir Dora

มันเป็นรหัสผ่าน APK ที่สร้างล่าสุดเท่านั้นและตลอดเวลาที่ไฟล์ json จะเปลี่ยนไปในขณะที่คุณสร้าง apk ใหม่
Tarit Ray

วันนี้ช่วยฉันไว้!
Chathurika Senani

คุณช่วยฉันจริงๆ!
Benhar Upasana

5

เพิ่มสิ่งนี้เป็นอีกหนึ่งความเป็นไปได้ คำตอบอาจอยู่ใต้จมูกของคุณ - ในไฟล์ build.gradle ของแอปหากคุณเคยระบุการกำหนดค่าการเซ็นชื่อในอดีต:

signingConfigs {
    config {
        keyAlias 'My App'
        keyPassword 'password'
        storeFile file('/storefile/location')
        storePassword 'anotherpassword'
    }
}

โชคดีมั้ย?!


3

ฉันมีปัญหาเดียวกันในครั้งเดียว แม้ว่าด้วยการลงนามแอปโดย Google Play การสูญเสียที่เก็บคีย์หรือรหัสผ่านไม่ใช่เรื่องใหญ่เหมือนก่อนหน้านี้ แต่ในฐานะนักพัฒนาเราต้องการเปลี่ยนรหัสผ่านและใช้ไฟล์ที่เก็บคีย์ที่สร้างขึ้นโดยไม่ต้องรอให้ Google จัดการกับมันสักสองสามวัน (ในการจัดการปัญหานี้กับ google ให้ใช้ลิงก์นี้ในการร้องขอ) ในการจัดการปัญหานี้ด้วยตัวเองขั้นแรกให้ดาวน์โหลดไฟล์. java สองไฟล์จากลิงค์นี้ จากนั้นคอมไพล์ ChangePassword.java ด้วยjavac ChangePassword.javaคำสั่ง หลังจากนั้นคุณอาจเรียกใช้

java ChangePassword <oldKeystoreFileName.keystore> <newKeystoreFileName.keystore>

เปลี่ยนoldKeystoreFileName.keystoreด้วยพา ธ / ชื่อของไฟล์ที่เก็บคีย์ปัจจุบันของคุณและnewKeystoreFileName.keystoreด้วยพา ธ / ชื่อสำหรับไฟล์ที่เก็บคีย์ใหม่ที่สร้างขึ้นใหม่ สิ่งนี้จะส่งเสริมให้คุณ

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

. เพียงป้อนสิ่งที่คุณต้องการ :) ไม่จำเป็นต้องเป็นรหัสผ่านเดิมที่หายไป จากนั้นป้อนรหัสผ่านใหม่ด้วย *

รหัสผ่านที่เก็บคีย์ใหม่:

  • Voila นั่นแหล่ะ การดำเนินการนี้จะไม่เปลี่ยนแปลงการตรวจสอบคีย์สโตร์ของคุณและจะไม่ทำให้เกิดปัญหาใด ๆ ในการลงนามแอปหรือการอัปโหลดไปยังเหตุการณ์ play.google

@SIW ฉันเปลี่ยนรหัสผ่านโดยสร้างที่เก็บคีย์ใหม่โดยใช้รหัสเดิมกับ ChangePassword เมื่อฉันต้องการเซ็นชื่อฉันได้รับคีย์ที่เกี่ยวข้องกับนามแฝงของฉันไม่ใช่คีย์ส่วนตัว
Teddy Kossoko

ป๊อปอัปไม่สามารถกู้คืนข้อผิดพลาดที่สำคัญเมื่อฉันพยายาม
RedSIght


3

หากคุณสามารถสร้างแอปจากพีซี แต่จำรหัสผ่านไม่ได้นี่คือสิ่งที่คุณสามารถทำได้เพื่อดึงรหัสผ่าน

วิธีที่ 1:

ใน build.gradle ของคุณเพิ่มprintln MYAPP_RELEASE_KEY_PASSWORDดังต่อไปนี้:

signingConfigs {
    release {
        if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
            println MYAPP_RELEASE_KEY_PASSWORD
        }
    }
}

หลังจากนั้นให้เรียกใช้ cd android && ./gradlew assembleRelease

วิธีที่ 2:

เรียกใช้keytool -list -v -keystore your <.keystore file path>เช่น keytool -list -v -keystore ./app/my-app-key.keystore

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

จากนั้นเรียกใช้grep -rn "<your alias name>" .ในเทอร์มินัลของคุณและคุณจะสามารถเห็นไฟล์ sign.json ของคุณดังต่อไปนี้:

./app/build/intermediates/signing_config/release/out/signing-config.json

ไฟล์จะมีรหัสผ่านของคุณในรูปแบบ json พร้อมด้วยคีย์ "mKeyPassword": "<your password>"


3

ใน Ionic ฉันสามารถค้นหาได้ที่นี่: /app/platforms/android/app/build/intermediates/signing_config/release/out/signing-config.json

บางทีนี่อาจจะช่วยใครบางคนได้ ไชโย


ขอบคุณมาก!
Hugo Ramos

3

ฉันแปลกใจที่ไม่มีใครพูดถึงเรื่องนี้ แต่คุณสามารถไปที่การสนับสนุนนักพัฒนา Google Play แล้วพวกเขาจะทำงานร่วมกับคุณเพื่อสร้างคีย์การอัปโหลดใหม่:

https://support.google.com/googleplay/android-developer/contact/otherbugs

ฉันกรอกปัญหาและพวกเขาติดต่อฉันภายใน 1 วัน

อัปเดต: หลังจากทำตามคำแนะนำทางอีเมลแล้วฉันสามารถสร้างคีย์การอัปโหลดใหม่ได้และเปิดใช้งานในสองสามวันต่อมา แก้ไขปัญหา.


2

Android brute force จะไม่ทำงานหากรหัสผ่านทั้งสองของคุณแตกต่างกันดังนั้นตัวเลือกที่ดีที่สุดอาจเป็นเช่นนั้นลองค้นหาไฟล์ที่มีชื่อว่า

log.idea

ใน C: / users / บัญชีที่ตั้งชื่อของคุณคุณอาจพบว่าในโฟลเดอร์ android เปิดไฟล์นั้น lpg.idea ใน notepad แล้วค้นหา

นามแฝง

เมื่อใช้ตัวเลือกค้นหาในแผ่นจดบันทึกคุณจะพบว่ามีการแสดงรหัสผ่านและนามแฝงและนามแฝง


ควรเป็น idea.log
เฟลิกซ์


2

หากไม่มีอะไรให้ลองทำตามบรรทัดเหล่านี้ ย้ายไปยังเส้นทางที่เก็บ. jks เรียกใช้คำสั่งนี้ในพรอมต์คำสั่ง มันจะถามรหัสผ่านไม่ต้องสนใจและกด Enter

keytool -list -keystore sample.jks


2

โซลูชัน 2018 : ลงชื่อแอปด้วยไฟล์ที่เก็บคีย์ใหม่หากคุณไม่มีรหัสผ่านหรือไฟล์ jks

1) สร้างไฟล์ keystore.jks ใหม่ด้วย comand line (ไม่ใช่เมนูสร้างสตูดิโอ android)

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

ตัวอย่าง Windows: "C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore "C:\keystore_new.jks"

2) สร้างไฟล์. pem จากที่เก็บคีย์ใหม่

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

ตัวอย่าง Windows: "C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -export -rfc -alias upload -file "C:\upload_cert.pem" -keystore "C:\keystore_new.jks"

3) ใช้แบบฟอร์มการสนับสนุนนี้ตั้งค่า "ปัญหาที่เก็บคีย์" และเพิ่มไฟล์. pem ไฟล์แนบ: https://support.google.com/googleplay/android-developer/contact/otherbugs

4) เปิดใช้งานที่เก็บคีย์ใหม่ 12-48 ชม. อัปเดตแอปของคุณบน playstore ด้วย apk ใหม่ที่ลงนามด้วยคีย์สโตร์ใหม่: D


ฉันคิดว่าสำหรับผู้ที่เลือกใช้ตัวเลือกการลงชื่อเข้าใช้แอป Google
Sumit Kumar


1

เพื่อสรุปคำตอบสำหรับคำถามนี้มี 3 คำ (และคำตอบที่ยอมรับไม่ได้ให้คำตอบ):

  1. หากคุณมีบันทึกของคุณเหมือนเดิมคุณสามารถค้นหารหัสผ่านในไฟล์บันทึกของ Android Studio ตามคำตอบของ Georgi Koemdzhievด้านบน

  2. คุณสามารถดึงรหัสผ่านจากไฟล์ 'taskArtifacts.bin' ในไดเร็กทอรี. gradle ของคุณตามคำตอบของElDoRado1239และGueorgui Obregonข้างต้น ดูเหมือนจะใช้ไม่ได้กับ Gradle เวอร์ชันใหม่กว่า (2.10 ขึ้นไป)

  3. ใช้ AndroidKeystoreBrute เพื่อเดาหรือบังคับใช้รหัสผ่านของคุณตามคำตอบของ Srinivas Keerthiprakasamข้างต้น

โซลูชันทั้ง 3 นี้ครอบคลุมในเชิงลึกที่ลิงค์นี้


1

ในกรณีของฉันฉันได้รับชื่อนามแฝงผิดแม้ว่าฉันจะเก็บรหัสผ่านที่ถูกต้อง ดังนั้นฉันคิดว่ามันเป็นรหัสผ่านที่ไม่ถูกต้อง (ใช้แพ็คเกจไอออนิก) ดังนั้นฉันจึงใช้คำสั่งนี้เพื่อรับชื่อนามแฝง

keytool -list -v -keystore

และฉันก็สามารถใช้ที่เก็บคีย์ได้อีกครั้ง!


1

C: \ Users \ admin \ AndroidStudioProjects \ TrumpetTVChannel2.gradle \ 2.14.1 \ taskArtifacts \ taskArtifacts.bin

ขั้นแรกให้ลองสร้างที่เก็บคีย์ใหม่ .... จากนั้นเปิด taskArtifacts.bin ด้วย notepad และมองหารหัสผ่านที่คุณเพิ่งให้ .... คุณจะสามารถหาคำที่ใกล้เคียงกับรหัสผ่านที่คุณเพิ่งให้จากนั้นค้นหาคำเหล่านี้ใกล้ รหัสผ่านของคุณในไฟล์เดียวกัน .... คุณจะสามารถหารหัสผ่านได้ ..... :)


1

ฉันรู้ว่าคำถามนี้เป็นวัยเก่า แต่ผมเห็นหลายคำตอบที่ได้รับการพูดโดยทั่วไปแรงเดรัจฉานเป็นวิธีที่จะไปซึ่งเป็นเพียงไม่จริงเพราะ devs มักจะมีรหัสผ่านที่แข็งแกร่งและระยะยาวซึ่งไม่สามารถเดรัจฉานบังคับว่า อย่างง่ายดายใช้เวลาหลายวันและคุณต้องให้คอมพิวเตอร์ของคุณทำงานตลอด 24 ชั่วโมงทุกวันดังนั้นวิธีแก้ปัญหาของฉันจึงง่ายมาก - ติดต่อฝ่ายสนับสนุนพวกเขาจะสร้างคีย์ใหม่ให้คุณซึ่งเป็นวิธีที่เร็วที่สุดที่คุณจะได้รับ

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