版权声明:欢迎订阅公众号【5厘米的理想】愿生命里的每一个小理想,都能成为生命里的小确幸本文地址为: /qinyuanpei/article/details/
??这裏我使用的是Newtonsoft.Json这个类库,相信大家都是知道的了!因此序列化和反序列化特别简单。
??因为我们这里要做的是一个安卓游戏存档提取存档的方案设计因为考虑到存档数据的安全性,我们可以考虑采用相关的加密/解密算法来实现对序列化后的明文数据进荇加密这样可以从一定程度上保证安卓游戏存档提取存档数据的安全性。因为博主并没有深入地研究过加密/解密方面的内容所以这里僅仅提供一个从MSDN上获取的Rijandel算法,大家感兴趣的话可以自行去研究 ??好了,下面给出完整代码我们这里提供了两个公开的方法GetData()和SetData()以及IO相关的辅助方法,我们在实际使用的时候只需要关注这些方法就可以了! ??这里我们的密钥是直接写在代码中的这样做其實是有风险的,因为一旦我们的项目被反编译我们这里的密钥就变得很不安全了。这里有两种方法一种是把密钥暴露给外部方法,即茬读取数据和写入数据的时候使用同一个密钥即可而密钥可以采取由机器MAC值生成的方法,这样每台机器上的密钥都是不同的可以防止数據被破解;其次可以采用DLL混淆的方法让反编译者无法看到代码中的内容这样就无法获得正确的密钥从而无法获得存档里的内容了。 好了最后我们来写一个简单的测试脚本: ??好了,这就是今天的内容了希望大家能够喜欢,有什么问题可以给我留言谢谢! 喜欢我的博客请记住我的名字:秦元培,我的博客地址是:
??因为我们这里要做的是一个安卓游戏存档提取存档的方案设计因为考虑到存档数据的安全性,我们可以考虑采用相关的加密/解密算法来实现对序列化后的明文数据进荇加密这样可以从一定程度上保证安卓游戏存档提取存档数据的安全性。因为博主并没有深入地研究过加密/解密方面的内容所以这里僅仅提供一个从MSDN上获取的Rijandel算法,大家感兴趣的话可以自行去研究
??好了,下面给出完整代码我们这里提供了两个公开的方法GetData()和SetData()以及IO相关的辅助方法,我们在实际使用的时候只需要关注这些方法就可以了! ??这里我们的密钥是直接写在代码中的这样做其實是有风险的,因为一旦我们的项目被反编译我们这里的密钥就变得很不安全了。这里有两种方法一种是把密钥暴露给外部方法,即茬读取数据和写入数据的时候使用同一个密钥即可而密钥可以采取由机器MAC值生成的方法,这样每台机器上的密钥都是不同的可以防止数據被破解;其次可以采用DLL混淆的方法让反编译者无法看到代码中的内容这样就无法获得正确的密钥从而无法获得存档里的内容了。 好了最后我们来写一个简单的测试脚本: ??好了,这就是今天的内容了希望大家能够喜欢,有什么问题可以给我留言谢谢! 喜欢我的博客请记住我的名字:秦元培,我的博客地址是:
??好了,下面给出完整代码我们这里提供了两个公开的方法GetData()和SetData()以及IO相关的辅助方法,我们在实际使用的时候只需要关注这些方法就可以了!
??这里我们的密钥是直接写在代码中的这样做其實是有风险的,因为一旦我们的项目被反编译我们这里的密钥就变得很不安全了。这里有两种方法一种是把密钥暴露给外部方法,即茬读取数据和写入数据的时候使用同一个密钥即可而密钥可以采取由机器MAC值生成的方法,这样每台机器上的密钥都是不同的可以防止数據被破解;其次可以采用DLL混淆的方法让反编译者无法看到代码中的内容这样就无法获得正确的密钥从而无法获得存档里的内容了。 好了最后我们来写一个简单的测试脚本: ??好了,这就是今天的内容了希望大家能够喜欢,有什么问题可以给我留言谢谢! 喜欢我的博客请记住我的名字:秦元培,我的博客地址是:
??这里我们的密钥是直接写在代码中的这样做其實是有风险的,因为一旦我们的项目被反编译我们这里的密钥就变得很不安全了。这里有两种方法一种是把密钥暴露给外部方法,即茬读取数据和写入数据的时候使用同一个密钥即可而密钥可以采取由机器MAC值生成的方法,这样每台机器上的密钥都是不同的可以防止数據被破解;其次可以采用DLL混淆的方法让反编译者无法看到代码中的内容这样就无法获得正确的密钥从而无法获得存档里的内容了。
好了最后我们来写一个简单的测试脚本:
??好了,这就是今天的内容了希望大家能够喜欢,有什么问题可以给我留言谢谢!
喜欢我的博客请记住我的名字:秦元培,我的博客地址是: