我目前正在尝试组合一个新的react-native应用程序,我需要在将react-native捆绑包推送到设备上并在其上运行时对其进行加密。然后我需要能够在它被本地代码加载之前解密它,否则它将是胡言乱语。
有没有办法截获捆绑包的加载,这样我就可以做到这一点?我在谷歌上到处搜索并做了研究,似乎并没有太多关于这个问题的答案。理想情况下,我需要针对Android和iOS的方法(我假设这将需要一个本机代码解决方案),但是如果为其中一个找到了方法,我可以想象同样的原则也可以应用于另一个。
一些可能有用的细节:目前正在使用react-native (非expo)的0.63.2。原生的甚至基于jni的解决方案都很受欢迎--我宁愿有一个解决方案,也不要什么都没有。
发布于 2020-10-07 05:48:39
这是可能的,就像codepush (https://github.com/microsoft/react-native-code-push)一样,通过下载包并在应用程序启动之前“安装”它来加载包。
您可以在文件ios/MyApp/AppDelegate.m和android/app/src/main/java/com/MyApp/MainApplication.java中操作包加载,覆盖一些方法。
但不管怎样,即使你加密了捆绑包,如果要解密的密钥在js捆绑包之外的前端应用程序上,它总是有一种解密的方法。也许这需要一些时间,但这是可能的。
那么,这种加密是非常必要的吗?也许在使用新的Hermes Js https://github.com/facebook/hermes时,捆绑包上有一些混淆,这已经足够了。
https://stackoverflow.com/questions/64225594
复制相似问题