Cara Mendapatkan SHA-1, SHA-256, dan MD5 di Android Studio
Dalam pengembangan aplikasi Android, sering kali Anda memerlukan jejak digital unik seperti SHA-1, SHA-256, dan MD5 untuk mengintegrasikan layanan seperti Google Cloud APIs, Spreadsheet API, Firebase, atau layanan pihak ketiga lainnya. Hash ini memainkan peran penting dalam keamanan, validasi, dan autentikasi aplikasi Anda.
Artikel ini dirancang untuk membantu Anda memahami:
Apa itu SHA-1, SHA-256, dan MD5.
Cara mendapatkan nilai hash tersebut menggunakan Android Studio.
Fungsi, tujuan, dan manfaat masing-masing hash.
Kaitannya dengan kebutuhan pengembangan aplikasi Android, disertai analogi yang mudah dipahami oleh pemula.
Apa itu SHA-1, SHA-256, dan MD5?
1. SHA-1 (Secure Hash Algorithm 1)
Algoritma hashing 160-bit yang menghasilkan jejak digital unik. SHA-1 digunakan untuk mengidentifikasi aplikasi dan memberikan autentikasi yang diperlukan saat mengintegrasikan layanan seperti Firebase.
2. SHA-256
Versi lebih aman dari SHA-1 dengan panjang hash 256-bit. Digunakan dalam konteks yang memerlukan keamanan tinggi, seperti validasi digital dan integrasi layanan berbasis keamanan lanjutan.
3. MD5 (Message Digest 5)
Algoritma hashing 128-bit yang cepat namun kurang aman dibandingkan SHA-1 atau SHA-256. MD5 sering digunakan untuk memverifikasi integritas data.
Hash ini bersifat irreversible (tidak dapat dibalikkan) dan biasanya digunakan untuk:
Keamanan aplikasi: Melindungi komunikasi antara aplikasi dan server.
Validasi data: Memastikan data atau file tidak berubah selama proses transmisi.
Cara Mendapatkan SHA untuk Aplikasi Anda
Ada beberapa metode untuk mendapatkan sidik jari SHA-1 atau SHA-256, tergantung pada bagaimana Anda menandatangani aplikasi. Berikut penjelasannya:
1. Menggunakan Penandatanganan Aplikasi Play
Jika Anda menggunakan fitur Penandatanganan Aplikasi Play (wajib untuk Android App Bundle), SHA-1 dapat diperoleh langsung melalui Google Play Console:
- Masuk ke konsol Anda.
- Buka menu Rilis > Penyiapan > Integritas Aplikasi.
- Di sana, Anda akan menemukan sidik jari SHA-1 untuk kunci penandatanganan aplikasi.
Catatan Penting:
- Sertifikat kunci unggah (upload key) akan berbeda dengan sertifikat kunci penandatanganan aplikasi yang digunakan Google Play untuk mendistribusikan aplikasi Anda.
2. Menandatangani Aplikasi Secara Manual
Jika Anda tidak menggunakan Penandatanganan Aplikasi Play, Anda bisa mendapatkan sidik jari SHA dengan menggunakan Keytool atau perintah Gradle.
Menggunakan Keytool
Keytool adalah utilitas yang disediakan bersama dengan Java Development Kit (JDK). Berikut langkah-langkah untuk mendapatkan sidik jari SHA-1:
a. Untuk Sertifikat Rilis:
Gunakan perintah berikut di terminal:
keytool -list -v -alias <nama-alias-kunci> -keystore <path-ke-keystore-produksi>
b. Untuk Sertifikat Debug:
Debug key biasanya digunakan selama pengembangan aplikasi lokal. Gunakan perintah ini:
Mac/Linux:
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
Windows:
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
Masukkan kata sandi keystore saat diminta. Jika Anda menggunakan debug keystore bawaan Android Studio, kata sandinya adalah:
android
Setelah perintah dijalankan, Anda akan mendapatkan output seperti ini:
Certificate fingerprint: SHA1: DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09
Menggunakan Keytool untuk APK atau AAB
Untuk mendapatkan sidik jari SHA dari file APK atau AAB:
keytool -printcert -jarfile app.apk
keytool -printcert -jarfile app.aab
Catatan:
Jika Anda menggunakan Penandatanganan Aplikasi Play, sidik jari SHA dari file APK/AAB yang diunggah akan berbeda dengan yang didistribusikan oleh Google Play.
3. Menggunakan Gradle Signing Report
Gradle juga menyediakan cara mudah untuk mendapatkan sidik jari SHA, terutama jika Anda bekerja langsung di Android Studio.
Buka Terminal di Android Studio
Klik tab "Terminal" yang ada di bagian bawah Android Studio.
Jalankan Perintah Ketik perintah berikut:
./gradlew signingReportKemudian tekan Enter.
- Anda akan mendapatkan laporan penandatanganan untuk setiap varian aplikasi, lengkap dengan detail SHA-1 dan SHA-256.
Hash ini akan dihasilkan untuk setiap Build Variant yang Anda gunakan, seperti debug dan release.
Contoh output:
> Task :app:signingReport
Variant: debug
Config: debug
Store: ~/.android/debug.keystore
Alias: AndroidDebugKey
SHA1: A7:89:E5:05:C8:17:A1:22:EA:90:6E:A6:EA:A3:D4:8B:3A:30:AB:18
SHA-256: 05:A2:2C:35:EE:F2:51:23:72:4D:72:67:A5:6C:8C:58:22:2A:00:D6:DB:F6:45:D5:C1:82:D2:80:A4:69:A8:FE
Kompatibilitas Gradle
Perintah signingReport kompatibel dengan Android Gradle Plugin (AGP) versi terbaru, termasuk Gradle versi 8.x. Namun, Anda mungkin melihat peringatan terkait fitur Gradle yang sudah deprecated. Peringatan ini tidak memengaruhi fungsi signingReport, tetapi perlu diperhatikan jika Anda berencana memperbarui ke Gradle versi 9.x di masa depan.
Kegunaan, Fungsi, dan Tujuan Hash dalam Pengembangan Android
1. SHA-1
Kegunaan:
Mengautentikasi aplikasi Android dengan layanan seperti Firebase dan Google APIs (misalnya, Google Maps atau Authentication).
Menjadi kunci identifikasi unik antara aplikasi Anda dan server.
Analogi:
Bayangkan Anda memiliki rumah dengan kunci unik. SHA-1 adalah sidik jari kunci tersebut. Hanya kunci dengan sidik jari ini yang dapat membuka akses ke layanan tertentu, seperti Firebase.
Manfaat:
Keamanan: Memastikan komunikasi antara aplikasi dan server aman.
Validasi: Menjamin hanya aplikasi yang valid dapat mengakses API.
2. SHA-256
Kegunaan:
Digunakan dalam layanan yang membutuhkan keamanan tinggi, seperti Play Integrity API.
Memverifikasi file instalasi (APK) untuk memastikan tidak ada perubahan selama distribusi.
Analogi:
Jika SHA-1 seperti sidik jari, SHA-256 adalah biometrik lengkap yang mencakup pengenalan wajah dan iris mata. Dengan keamanan tingkat lanjut, ini memastikan akses hanya diberikan kepada aplikasi yang benar-benar valid.
Manfaat:
Lebih aman dibandingkan SHA-1.
Mengurangi risiko pemalsuan hash (hash collision).
3. MD5
Kegunaan:
Memastikan integritas data, seperti memastikan file yang diunduh tidak rusak.
Digunakan dalam hashing cepat untuk kebutuhan yang tidak memerlukan tingkat keamanan tinggi.
Analogi:
Bayangkan Anda memesan paket dan mencatat beratnya. Saat paket tiba, Anda mengecek apakah beratnya masih sama. MD5 adalah alat pengecekan sederhana untuk memastikan "paket data" Anda tidak berubah selama perjalanan.
Manfaat:
Validasi cepat: Memastikan file APK atau data lainnya tidak mengalami perubahan.
Efisiensi: Cepat untuk perhitungan hashing.
Kaitannya dengan Pengembangan Aplikasi Android
Google Cloud API dan Spreadsheet API
SHA-1: Dibutuhkan untuk memverifikasi aplikasi saat menggunakan API seperti Google Sheets atau Google Drive.
SHA-256: Dibutuhkan untuk layanan yang membutuhkan keamanan tingkat tinggi.
Firebase
SHA-1: Diperlukan untuk mengintegrasikan Firebase Authentication dan layanan Firebase lainnya.
SHA-256: Opsional, tetapi memberikan keamanan tambahan.
Integrasi Pihak Ketiga
Hash ini membantu server pihak ketiga memverifikasi bahwa aplikasi Anda adalah aplikasi yang sah sebelum memberikan akses ke API atau layanan mereka.
Kesimpulan
Hash seperti SHA-1, SHA-256, dan MD5 adalah komponen penting dalam pengembangan aplikasi Android. Masing-masing memiliki fungsi spesifik:
SHA-1: Untuk autentikasi aplikasi dengan layanan seperti Firebase dan Google APIs.
SHA-256: Untuk keamanan tingkat lanjut.
MD5: Untuk memverifikasi integritas data.
Dengan memahami cara mendapatkan hash ini dan manfaatnya, Anda dapat memastikan aplikasi Anda lebih aman, dapat dipercaya, dan siap terintegrasi dengan berbagai layanan. Jangan lupa selalu memperbarui Gradle dan Android Gradle Plugin untuk menjaga kompatibilitas dan memanfaatkan fitur terbaru!
Referensi :
https://stackoverflow.com/questions/42290681/android-studio-only-gives-me-sha1-i-need-sha256
https://developers.google.com/android/guides/client-auth?hl=id#jendela