Java 如何在Android中加密类文件(.class)?

Java 如何在Android中加密类文件(.class)?,java,android,compilation,reverse-engineering,Java,Android,Compilation,Reverse Engineering,请参阅此处的第二点(加密类文件)如何使apk安全。防止反编译如何在Android中加密和解密类文件?代码签名是确保apk文件安全的一个选项。它确保了源代码的真实性和完整性。您可以通过以下链接了解更多详细信息 现在来谈谈关于保护apk文件不被反编译的问题,这是不可能的,但是您仍然可以使用一些预防措施来解决这个问题。请通过下面的链接 您可以将代码与(免费)和(企业)混淆 在你的应用程序gradle中: buildTypes { release { minifyEnabled

请参阅此处的第二点(加密类文件)如何使apk安全。防止反编译如何在Android中加密和解密类文件?

代码签名是确保apk文件安全的一个选项。它确保了源代码的真实性和完整性。您可以通过以下链接了解更多详细信息

现在来谈谈关于保护apk文件不被反编译的问题,这是不可能的,但是您仍然可以使用一些预防措施来解决这个问题。请通过下面的链接


您可以将代码与(免费)和(企业)混淆

在你的应用程序gradle中:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true

        proguardFile 'proguard-google-play-services.pro'
        proguardFile 'proguard-butter-knife.pro'
        proguardFile 'proguard-volley.pro'

    }
    debug {
        minifyEnabled false
    }
}
当此代码处于发布模式时,您的代码会变得模糊

某些文件不能混淆,以便您可以在应用程序文件夹的根目录中创建某些文件,并在该文件夹上设置不能混淆的文件

截取文件,例如:

-keep class com.android.volley.** {*;}
-keep class com.android.volley.toolbox.** {*;}
-keep class com.android.volley.Response$* { *; }
-keep class com.android.volley.Request$* { *; }
-keep class com.android.volley.RequestQueue$* { *; }
-keep class com.android.volley.toolbox.HurlStack$* { *; }
-keep class com.android.volley.toolbox.ImageLoader$* { *; }
通常在库自述中,它们编写您必须编写的内容,以防止某些类出现混淆。
也可以认为你只会使它变得更难,但不是不可能。

< p>如果你想要更高层次的混淆,你可以试试这个工具:

你不能。你可以混淆它,有不同的工具允许你这样做(ProGuard是其中之一)签署APK不会阻止反编译,这就是OP所寻找的。我的观点更倾向于保护APK文件,这是原始问题的一部分。是的,正如你所说,它不会停止反编译apk文件,OP说“安全”,但指定他要加密和解密类文件以防止反编译:这个答案并没有回答这个问题。