สำหรับนักพัฒนาแอป Android ที่จัดการคีย์ Signing ของตนเอง ลายนิ้วมือของใบรับรอง SHA-256 คือข้อมูลประจำตัวการเข้ารหัสที่ไม่ซ้ำกันของแอป คู่มือนี้แสดงวิธีการ 3 วิธีในการดึงข้อมูลจากไฟล์ APK ที่รับรองแล้วหรือคีย์สโตร์เดิม
การดึงข้อมูล SHA-256 จากไฟล์ APK
วิธีการเหล่านี้มีประโยชน์ในกรณีที่คุณมีไฟล์ APK สุดท้ายที่รับรองแล้ว แต่เข้าถึงคีย์สโตร์เดิมหรือรหัสผ่านได้ยาก
วิธีการที่ 1ก: การใช้ apksigner (แนะนำสำหรับ APK)
เครื่องมือ apksigner เป็นวิธีที่ทันสมัยและเชื่อถือได้มากที่สุดในการแยกข้อมูลลายเซ็นจาก APK ไม่ว่าจะใช้รูปแบบการรับรอง V1, V2, V3 หรือ V4 ก็ตาม
ขั้นตอนที่ 1: ค้นหา apksigner
(ตัวอย่าง: /Users/username/Library/Android/sdk/build-tools/34.0.0/apksigner)
ขั้นตอนที่ 2: เรียกใช้คำสั่ง
เปิดเทอร์มินัลหรือ Command Prompt, ไปที่ไดเรกทอรีที่บันทึก APK ไว้ แล้วเรียกใช้คำสั่งต่อไปนี้
apksigner verify --print-certs <path/to/your/app.apk>
ขั้นตอนที่ 3: ค้นหาลายนิ้วมือ SHA-256
เอาต์พุตจะแสดงรายละเอียดใบรับรองสำหรับผู้รับรองแต่ละราย ค้นหาป้ายกำกับไดเจสต์ SHA-256 ต่อไปนี้
Signer #1 certificate SHA-256 digest:
a32a43cd459f7ce6b82c552f5d876989d53e6af1c0b2d35fb677b51a1dc4f0e5
สตริงยาวของอักขระเลขฐาน 16 ที่คั่นด้วยเครื่องหมายโคลอนคือลายนิ้วมือของใบรับรอง SHA-256
วิธีการที่ 1ข: การใช้ Keytool ใน APK
ขั้นตอนที่ 1: ค้นหา Keytool และ APK
ตรวจสอบว่าคุณทราบตำแหน่งของทั้งยูทิลิตี Keytool (ส่วนหนึ่งของการติดตั้ง JDK) และไฟล์ APK ที่รับรองแล้ว
ขั้นตอนที่ 2: เรียกใช้คำสั่ง
ใช้คำสั่งต่อไปนี้โดยระบุไฟล์ APK ที่รับรองเป็นคีย์สโตร์
keytool -printcert -jarfile <path/to/your/app.apk>
ขั้นตอนที่ 3: ค้นหาลายนิ้วมือ SHA-256
เอาต์พุตจะมีส่วนลายนิ้วมือของใบรับรอง มองหาบรรทัด SHA-256
การดึงข้อมูล SHA-256 จากไฟล์คีย์สโตร์
นี่เป็นวิธีการที่ใช้กันโดยทั่วไปในการแยกข้อมูลลายนิ้วมือของใบรับรองจากไฟล์คีย์สโตร์ต้นทางในระบบปฏิบัติการใดก็ตาม
นี่เป็นวิธีการที่ใช้กันโดยทั่วไปในการแยกข้อมูลลายนิ้วมือของใบรับรองจากไฟล์คีย์สโตร์ต้นทางในระบบปฏิบัติการใดก็ตาม
วิธีการที่ 2: การใช้ยูทิลิตี Keytool มาตรฐาน
ขั้นตอนที่ 1: ค้นหาเครื่องมือและไฟล์คีย์สโตร์
คุณต้องมีสิ่งต่อไปนี้
- ไฟล์คีย์สโตร์: ไฟล์ที่ใช้เพื่อรับรองแอป (.jks หรือ .keystore) คุณต้องทราบเส้นทาง รหัสผ่าน และชื่อแทนของคีย์ภายใน
- ยูทิลิตี Keytool: เครื่องมือนี้รวมอยู่ใน Java Development Kit (JDK)
| ระบบปฏิบัติการ | ตำแหน่งของ Keytool |
| Windows | โดยปกติจะอยู่ในไดเรกทอรี bin ของการติดตั้ง JDK (เช่น C:\Program Files\Java\jdk-xx\bin\) |
| macOS/Linux | โดยทั่วไปจะพร้อมใช้งานในเทอร์มินัลโดยตรงเมื่อติดตั้ง JDK แล้ว |
ขั้นตอนที่ 2: ไปยังตำแหน่งที่ถูกต้อง
เปิดเทอร์มินัลหรือ Command Prompt หากต้องการให้ขั้นตอนถัดไปง่ายขึ้น คุณสามารถไปที่ไดเรกทอรีที่มีไฟล์คีย์สโตร์โดยทำดังนี้
# ตัวอย่าง: แทนที่ด้วยเส้นทางจริง
cd /path/to/your/keystore/directory
ขั้นตอนที่ 3: เรียกใช้คำสั่ง
ใช้คำสั่งต่อไปนี้เพื่อสั่งให้ Keytool แสดงรายละเอียดใบรับรองในโหมดรายละเอียด
หมายเหตุ: หากระบบไม่รู้จัก Keytool คุณต้องระบุเส้นทางแบบเต็มไปยังยูทิลิตี (เช่น "/path/to/jdk/bin/keytool")
keytool -list -v -keystore [your_keystore_name.jks] -alias [your_key_alias]
- แทนที่ [your_keystore_name.jks] ด้วยชื่อไฟล์ของคุณ
- แทนที่ [your_key_alias] ด้วยชื่อแทนที่เฉพาะเจาะจงของคีย์ Signing (เช่น mykey)
ขั้นตอนที่ 4: ค้นหาลายนิ้วมือ SHA-256
ยูทิลิตีจะแจ้งให้คุณป้อนรหัสผ่านคีย์สโตร์ เมื่อป้อนแล้ว เอาต์พุตจะแสดงรายละเอียดใบรับรอง
มองหาส่วนลายนิ้วมือของใบรับรอง
ลายนิ้วมือของใบรับรอง
SHA1: XX:XX:XX:XX:XX:...
SHA256: 0A:B3:C6:D9:E2:F5:81:B4:C7:D0:E3:F6:92:A5:B8:C1:D4:E7:F0:83:96:A9:BC:D1:E4:F7:03:96:A9:BC:D1:E4
ชื่ออัลกอริทึมลายเซ็น: SHA256withRSA
...
สตริงยาวของอักขระเลขฐาน 16 ที่คั่นด้วยเครื่องหมายโคลอนถัดจาก SHA256: คือลายนิ้วมือของใบรับรอง SHA-256 สาธารณะ