2015-12-26 34 views
3

我正在使用数据库文件和一些我放在Assets文件夹中的文本文件。当任何用户下载我的APK文件并提取它时,他会很容易地从资产文件夹中获取我的资源。Android中的资源的数据加密

如何加密我的所有资源,以便如果有人获得我的资源,他不能使用它?

+0

你可能在你的应用程序的可用性的基础上选择的加密级别。但可以使用内部Java加密类 –

+0

您可以使用AES加密Java类来加密和解密您的资源 –

+0

http://javapapers.com/java/java-symmetric-aes-encryption-decryption-using-jce/ –

回答

0

我认为,如果你使用Proguard的在你的应用程序,然后,如果用户编译您的应用程序文件夹的资产将混淆...

,如果你不知道什么proguard的再读取this

+4

AFAIK,ProGuard与资产无关,因为我使用ProGuard对应用程序进行了模糊处理,发现资产文件夹中没有任何更改。但是,我不确定。如果你是,请让我知道。 –

+0

@ HiI'mFrogatto正确,Proguard不提供数据加密。 – fasteque

0

假设资产文件已经加密,Java的CipherInputStream解密资源文件的内容将帮助您的需要

// Cipher that holds algorithm (E.g. AES) 
Cipher cipher = getCipherProbablyAES(); 


// Get input stream to that file. Handle IOException on your own 
InputStream assetFile = getAssets().open("myEncrypted.txt"); 
CipherInputStream cipherIS = CipherInputStream(assetFile, cipher);