V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zcy4089
V2EX  ›  问与答

APP 的文件数据加解密问题

  •  
  •   zcy4089 · 2019-01-02 17:40:17 +08:00 · 1501 次点击
    这是一个创建于 2188 天前的主题,其中的信息可能已经有所发展或是发生改变。

    应用背景:

    做 A 操作的时候,记录下当时的一些文本信息,经过一定的加密,保存到文件里;做 B 操作的时候,读取并解密文件里的信息,拿来处理逻辑。

    问题:

    我这些信息要做一种怎么样的加密,才能防止信息被别人看到(看懂)。

    加密学这块有点小白,请教 V 站大神。

    14 条回复    2019-01-02 18:56:55 +08:00
    jinksw
        1
    jinksw  
       2019-01-02 17:44:55 +08:00   ❤️ 1
    aes 加密呗
    chinvo
        2
    chinvo  
       2019-01-02 17:50:17 +08:00   ❤️ 1
    对称用 AES,非对称用 RSA
    zcy4089
        3
    zcy4089  
    OP
       2019-01-02 17:50:32 +08:00
    @jinksw #1
    我也考虑过这种。但是会不会有隐患:这个密钥应该放在代码的哪个地方,万一 APK 被人反编译了,别人是不是同时也知道密钥了,信息也就会被解密了。还是说我想多了?
    liuminghao233
        4
    liuminghao233  
       2019-01-02 17:52:37 +08:00 via iPhone   ❤️ 1
    密钥一般是放用户脑子里的
    zcy4089
        5
    zcy4089  
    OP
       2019-01-02 17:53:08 +08:00
    @chinvo #2
    谢谢。
    请问这个时候如果我把公钥和私钥都打包在 APK 里,APK 被人反编译后,是不是就暴露了。正常做法应该是把公钥和密钥放在哪里?
    chinvo
        6
    chinvo  
       2019-01-02 17:54:17 +08:00   ❤️ 1
    @zcy4089 用户主密钥(即由用户手动输入密钥)和设备密钥(第一次启动时生成并存放在 keychain )

    但是一般不会单独使用设备密钥
    chinvo
        7
    chinvo  
       2019-01-02 17:56:44 +08:00   ❤️ 1
    @zcy4089 #5 另外在用非对称加密的时候,可以考虑加密(甚至解密也是)在服务器端执行,客户端和服务器之间用 https 并配合相应的鉴权逻辑防止未授权解密
    zcy4089
        8
    zcy4089  
    OP
       2019-01-02 18:18:20 +08:00
    @liuminghao233 #4

    @chinvo #6

    对不起我没描述清楚。我这个加密不是为了用户加密的,是为了我们本身(防止一些核心数据被用户或竞争对手知道),所以让用户输入密钥不大可行。
    zcy4089
        9
    zcy4089  
    OP
       2019-01-02 18:20:40 +08:00
    @chinvo #7
    目前我这个应用没有联网功能。谢谢你的耐心回答!
    jinksw
        10
    jinksw  
       2019-01-02 18:27:21 +08:00   ❤️ 1
    @zcy4089 你但凡把密钥和内容放在本地,不管是哪,只要人家想破解,肯定能破解。
    你只能说增加破解的难度
    比如说 密钥从不同的地方拼接生成
    再比如 加固应用 增加反编译的难度
    WordTian
        11
    WordTian  
       2019-01-02 18:31:35 +08:00 via Android   ❤️ 1
    公钥密钥往 native 层里放呗,然后 so 文件再用 vmp 加一层壳
    alvin666
        12
    alvin666  
       2019-01-02 18:36:20 +08:00 via Android   ❤️ 1
    安卓无解,xposed 直接读,改内存,怎么防都防不住
    加密还有性能问题
    liuminghao233
        13
    liuminghao233  
       2019-01-02 18:36:54 +08:00 via iPhone   ❤️ 1
    vmp+1
    sigup
        14
    sigup  
       2019-01-02 18:56:55 +08:00   ❤️ 1
    只要程序能解密,别人就能解密,hook 大法可破一切
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.