其实我是android新手。我们可以加密一个文件夹吗? 包含sdcard中的子文件夹和文件并将其解密回来?
非常感谢任何帮助。
谢谢。
答案 0 :(得分:5)
一般来说,你对Java有多新意见?您可以使用Android中的所有javax.security
和javax.crypto
类(例如Cipher
)来提供数据加密/解密。
请记住,用户可以直接访问SD卡上的文件(通过安装在PC上并浏览或通过文件管理器应用程序),这意味着有可能,虽然他们可能无法访问读取文件中的数据,用户理论上可以删除您在那里创建的目录,如果他们选择了......并且这可能不适合您的应用程序。
此外,实际上没有办法简单地将文件夹设置为“加密”,并自动为您保护任何文件。您需要创建要使用的目录,然后在写入/读取数据时加密/解密每个文件。
希望有所帮助!
答案 1 :(得分:0)
如果您尝试加密应用程序而非用户的私有数据,那么您需要访问密钥/令牌/ nonce才能解密。除非您远程进行加密或使用Android NDK,否则获取密钥/令牌/ nonce并解密它将是微不足道的。 Apk没有编译,可以很容易地解包并查看源代码。
答案 2 :(得分:0)
您肯定可以在Android上加密和解密数据,如其他答案中所述。但考虑到“做”变得更加复杂。
1)使用DES和56位密钥,您在美国不需要出口许可证。使用带有128位或256位密钥的AES或TDES,您可能需要开始填写文书工作:)
2)除非您希望用户输入的密码完全等于您可能想要播种的密钥大小,然后使用SHA256对密码进行多哈希。
3)您可能需要将密码数据编码为64位字符集(字母大写和小写,数字,+和/)作为密文。这通常需要三个字节的组,在需要时用=作为填充将它们扩展为四个字节。只需在互联网上搜索base64编码解码算法。
4)您可能希望在方案中添加LEVEL OF INDIRECTION,以便用户可以在以后更改密码而无需更改文件对称密钥。因此,有两种加密方式,使用随机对称密钥加密文件,然后使用用户密码加密随机对称密钥。 UGH。