我想在Android中的内部/外部存储中隐藏undefined
个文件。我们的要求是使文件仅在我们的Android应用中显示,而不是video/audio/pdf
等任何其他应用,甚至在将设备连接到Es File Explorer
时也不会。
我搜索了很多内容并找到了以下方法,但缺点很少。
创建带有前缀“。”的文件夹/文件 - 它的缺点是我们无法阻止它在某些带有“Desktop/Laptop
”选项的文件资源管理器应用中显示,而我们无法连接到Show hidden files
时阻止文件显示。
将文件存储在应用专用文件夹中 - 将Desktop/Laptop
存储在large memory files
返回的路径中会导致设备性能不佳,而且大多数设备都不会内存大小很大。
如何克服这些缺点并使我们的应用满足要求?
答案 0 :(得分:1)
您的第一个提议的解决方案无法正常工作,因为它可以让任何人都可以访问文件。
如果文件大小有限,第二种解决方案是完美的。如果是large memory files
,最好将它们存储在External storage
中。但这将使其公开可访问。为了防止您加密文件并将其存储在外部存储中。
这样做的一些建议:
n times
,然后存储在db中。这个会
使程序有点慢,但提供更多的安全性
知道n
获取原始密钥的确切值。答案 1 :(得分:0)
如果没有加密,建议不要将文件隐藏到用户可访问的存储空间。
Youtube,Gaana,saavan,hotstar所有这些与媒体相关的应用程序,用于加密数据和存储在数据位置,这些应用程序对用户可见,但在数据加密时无法以其他方式共享或使用。
您可以使用CipherOutputStream和CipherInputStream加密和解密android中的文件。
有两种方法可以实现目标
下载文件并对其进行加密,当您要播放该文件时,请将其解密为临时文件并播放,我不建议使用该文件,因为它会增加数据获取的可能性。
如果您想要即时播放加密文件(不在临时文件中解密),那么您可以使用Libmedia库。它在本地主机上传输加密文件并从那里播放