Đối với những nhà phát triển Android tự quản lý khoá ký, dấu vân tay chứng chỉ SHA-256 là mật mã duy nhất giúp nhận diện ứng dụng. Hướng dẫn sau đây giới thiệu cho bạn 3 phương pháp để truy xuất khoá này từ tệp APK đã ký hoặc kho khoá gốc.
Truy xuất SHA-256 từ tệp APK
Những phương pháp này sẽ có ích nếu bạn đã ký tệp APK cuối cùng, nhưng có thể gặp khó khăn khi truy cập vào kho khoá gốc hoặc mật khẩu của kho khoá đó.
Phương pháp 1A: Sử dụng apksigner (Nên dùng cho APK)
Công cụ apksigner là cách thức hiện đại và đáng tin cậy nhất để trích xuất thông tin chữ ký từ một APK, bất kể APK đó sử dụng chương trình ký V1, V2, V3 hay V4.
Bước 1: Xác định vị trí apksigner
(Ví dụ: /Users/username/Library/Android/sdk/build-tools/34.0.0/apksigner)
Bước 2: Chạy dòng lệnh
Mở thiết bị đầu cuối hoặc dấu nhắc lệnh, chuyển đến thư mục nơi bạn lưu tệp APK rồi thực thi lệnh sau:
apksigner verify --print-certs <path/to/your/app.apk>
Bước 3: Tìm dấu vân tay SHA-256
Kết quả sẽ liệt kê thông tin chi tiết về chứng chỉ của từng người ký. Tìm nhãn thông báo SHA-256:
Thông báo SHA-256 của chứng chỉ người ký 1:
a32a43cd459f7ce6b82c552f5d876989d53e6af1c0b2d35fb677b51a1dc4f0e5
Dấu vân tay chứng chỉ SHA-256 của bạn là cchuỗi dài gồm các ký tự hệ thập lục phân được phân tách bằng dấu hai chấm.
Phương pháp 1B: Sử dụng keytool trên APK
Bước 1: Xác định vị trí keytool và APK
Đảm bảo bạn biết vị trí của cả tiện ích keytool (một phần trong bản cài đặt JDK) và tệp APK đã ký.
Bước 2: Chạy dòng lệnh
Sử dụng lệnh sau, chỉ định tệp APK đã ký làm kho khoá:
keytool -printcert -jarfile <path/to/your/app.apk>
Bước 3: Tìm dấu vân tay SHA-256
Kết quả sẽ có phần Dấu vân tay chứng chỉ. Tìm dòng SHA-256.
Truy xuất SHA-256 từ tệp kho khoá
Đây là phương pháp mặc định để trích xuất dấu vân tay chứng chỉ từ tệp kho khoá nguồn trên mọi hệ điều hành.
Đây là phương pháp mặc định để trích xuất dấu vân tay chứng chỉ từ tệp kho khoá nguồn trên mọi hệ điều hành.
Cách 2: Sử dụng tiện ích keytool tiêu chuẩn
Bước 1: Xác định vị trí các công cụ và tệp kho khoá
Bạn cần:
- Tệp kho khoá: Tệp dùng để ký ứng dụng của bạn (.jks hoặc .keystore). Bạn phải biết đường dẫn, mật khẩu và tên bí danh của khoá ở bên trong.
- Tiện ích keytool: Công cụ này có trong Bộ công cụ phát triển Java (JDK).
| Hệ điều hành | Vị trí của keytool |
| Windows | Thường là trong thư mục bin của bản cài đặt JDK (ví dụ: C:\Program Files\Java\jdk-xx\bin\). |
| macOS/Linux | Thường có sẵn ngay trong thiết bị đầu cuối sau khi bạn cài đặt JDK. |
Bước 2: Di chuyển đến đúng vị trí
Mở bảng nhập lệnh hoặc thiết bị đầu cuối. Để đơn giản hoá bước tiếp theo, bạn có thể chuyển đến thư mục chứa tệp kho khoá:
# Ví dụ: Thay bằng đường dẫn thực tế của bạn
cd /path/to/your/keystore/directory
Bước 3: Chạy dòng lệnh
Sử dụng lệnh sau để hướng dẫn keytool liệt kê thông tin chi tiết về chứng chỉ ở chế độ chi tiết.
Lưu ý: Nếu hệ thống không nhận diện được keytool, bạn phải chỉ định đường dẫn đầy đủ đến phần mềm tiện ích này (ví dụ: "/path/to/jdk/bin/keytool").
keytool -list -v -keystore [your_keystore_name.jks] -alias [your_key_alias]
- Thay thế [your_keystore_name.jks] bằng tên thực tế của tệp.
- Thay thế [your_key_alias] bằng tên bí danh cụ thể của khoá ký (ví dụ: mykey).
Bước 4: Tìm dấu vân tay SHA-256
Tiện ích này sẽ nhắc bạn nhập mật khẩu kho khoá. Sau khi bạn nhập, kết quả sẽ hiển thị thông tin chi tiết về chứng chỉ.
Tìm phần Dấu vân tay chứng chỉ:
Dấu vân tay chứng chỉ:
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
Tên thuật toán chữ ký: SHA256withRSA
...
Chuỗi dài gồm các ký tự hệ thập lục phân được phân tách bằng dấu hai chấm bên cạnh SHA256: là dấu vân tay chứng chỉ SHA-256 công khai của bạn.