Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh menyembunyikan rentetan sensitif dengan berkesan dalam kod Android yang dikelirukan selepas penyahkompilasi?

Bagaimanakah saya boleh menyembunyikan rentetan sensitif dengan berkesan dalam kod Android yang dikelirukan selepas penyahkompilasi?

DDD
DDDasal
2024-10-28 11:41:02414semak imbas

How can I effectively hide sensitive strings in obfuscated Android code after decompilation?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn