如何在Android中保护资产文件

如何在Android中保护资产文件,android,security,assets,Android,Security,Assets,我需要在应用程序中存储音频文件。应限制对这些文件的访问。如何安全地存储这些文件 我试图将其存储在assets文件夹中,但在解包apk时,可以获得这些文件 我还将扩展文件用作zip存档,但是,用户可以分配此文件并检索这些文件 是否有方法存储文件,以便用户无法获取 是否有方法存储文件,以便用户无法获取 下载它们,不要将它们写入磁盘 或者,下载它们并将它们写入内部存储器(例如,getCacheDir()),注意到为其设备设置根目录的用户仍然可以访问它们 欢迎您尝试加密资产,然后在使用前解密。然而,由于

我需要在应用程序中存储音频文件。应限制对这些文件的访问。如何安全地存储这些文件

我试图将其存储在assets文件夹中,但在解包apk时,可以获得这些文件

我还将扩展文件用作zip存档,但是,用户可以分配此文件并检索这些文件

是否有方法存储文件,以便用户无法获取

是否有方法存储文件,以便用户无法获取

下载它们,不要将它们写入磁盘

或者,下载它们并将它们写入内部存储器(例如,
getCacheDir()
),注意到为其设备设置根目录的用户仍然可以访问它们

欢迎您尝试加密资产,然后在使用前解密。然而,由于解密算法和密钥将在应用程序中,人们可以对应用程序进行反向工程,并学习如何解密资产

是否有方法存储文件,以便用户无法获取

公共软件的回答并不能解决问题。黑客可以对其进行反向工程,以获取下载资产的url,或者通过运行时挂钩或调试从内存中获取文件数据

事实上,没有解决方案,但安全专家试图做的只是让数据带来的成本更高

如果应用程序的资产非常重要,那么我建议您做以下几件事

  • 使用对称加密技术(如AES)加密资产文件
  • 以黑客无法简单识别的方式制作密钥。(考虑白盒密码学)
  • 您可以使用模糊处理软件来混淆逆向工程(如proguard、dexguard等)
  • 每次使用它时,都要解密它
  • 为了保护挂钩和调试,实现一些调试检查、根检查和完整性检查作为安全措施

  • 我知道上面的方法是很难实现的,如果有价值的资产,你应该考虑这些方法。

    < P>我想,如果你以某种方式加密音频,用户将仍然能够记录系统的声音,当你的应用程序播放资产的解密音频文件,即使没有生根电话,因为许多手机都有这个选项作为默认,如:小米、三星。因此,您无法完全隐藏这些音频文件。当你的应用程序播放资产的音频时,甚至用户也可以录制扬声器。

    谢谢你的回答!如何加密我的资产?解密后我可以使用声音池播放声音吗?用户可以轻松破解应用程序,您的应用程序可以下载,用户也可以下载,并将其保存到任何他想要的地方…您可以从远程安全服务器获取加密密钥。那么,有没有办法对资产进行加密?@Rosenpin:虽然这会让事情变慢一点,但攻击者所需要做的只是嗅探流量以获取密钥,或者以可调试的形式重新打包应用程序并从内存中获取密钥。“有没有加密资产的方法?”——在将资产放入项目的
    assets/
    目录之前对其进行加密。顺便说一句,有很多方法让攻击者更难,你也可以使用加密协议获取密钥等等,当然,要完全保护android应用免受黑客攻击几乎是不可能的,但是你可以让你的生活变得更加艰难them@YuJiaaoapk文件可以从Google Play下载,例如。