Menyembunyikan Rahsia dalam Kod Android yang Dikaburkan
Apabila mengelirukan kod Android dengan alatan seperti ProGuard, adalah perkara biasa untuk mengetahui bahawa rentetan sensitif kekal kelihatan selepas penyahkompiunan . Untuk menangani kebimbangan ini, berikut ialah beberapa strategi untuk menyembunyikan rentetan daripada mengintip:
Pengekodan dan Penyulitan
ProGuard tidak menyediakan mekanisme untuk menyembunyikan rentetan. Sebaliknya, pertimbangkan untuk melaksanakan kaedah pengekodan atau penyulitan anda sendiri. Untuk kekaburan asas, pengekodan menggunakan kaedah seperti Base64 sudah memadai. Untuk perlindungan yang lebih ketat, sulitkan rentetan menggunakan sifir simetri seperti AES melalui kelas seperti javax.crypto.Cipher.
Ingat bahawa penyulitan rentetan memerlukan penyimpanan kunci penyulitan dalam aplikasi, yang boleh menjejaskan keselamatan.
Contoh:
Sebelum:
<code class="java">public class Foo { private String mySecret = "http://example.com"; }</code>
Selepas:
<code class="java">public class Foo { private String encrypted = "<manually created encrypted string>"; private String key = "<key used for encryption"; private String mySecret = MyDecryptUtil.decrypt(encrypted, key); }</code>
Rentetan Kelas R
Rentetan kelas R yang anda sebutkan (mis., 2130903058) ialah rujukan kepada ID sumber. Mereka bukan nombor rawak tetapi menunjuk kepada sumber seperti fail susun atur. Semasa mengelirukan, rujukan kepada sumber digantikan dengan ID ini untuk mengurangkan saiz kod.
Apabila menyahkompilasi kod, kelas R mungkin tidak hadir kerana struktur dalamannya rosak oleh penyapu. Walau bagaimanapun, ID masih mewakili rujukan sumber asal.
DRM Pihak Ketiga
Pertimbangkan untuk menggunakan penyelesaian Pengurusan Hak Digital (DRM) khusus dan bukannya melaksanakan perlindungan anda sendiri langkah-langkah. Google menyediakan perkhidmatan pelesenan untuk Android yang boleh menjadi lebih selamat daripada penyelesaian tersuai.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyembunyikan rentetan sensitif dengan berkesan dalam kod Android yang dikelirukan selepas penyahkompilasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!