最近在开发一款android app, 因为需求的需要, app使用tcp和服务器保持长连接, 然后用户在操作时通过tcp发送指令及数据(键值对)到服务器, 比如添加分组这一类的操作, 那么在对用户的操作有进行后台权限验证的情况下, 除了用户登录和注册时的账号密码以外, 我们是否有必要对发送的数据(即指令和数据)进行加密呢?一般什么样的数据需要加密呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
有必要加密的,WiFi网络链路完全不可信,不加密的话你的整个业务都暴露出去了,中间人劫持重放伪等造安全问题,很容易把你的系统搞坏。加密属于底层的东西,如果你现在不设计进去,以后发现不得不加密的时候再来加密就相当麻烦了。
我经历过这样的项目,做的专用Android PDA上的程序,甲方要求对TCP加密的并且长连接,最后用了SSL来完成的,客户端和服务器端用证书来通信就行了。
推荐你用SSL,好处是现成的,而且免费,问题不多,遇到问题了也容易搜找到解决方案。你不用去考虑怎么来加密,都是用的现成的东西,从SDK和key生成都直接用。前期测试开发的时候可以不加密,最后成型之后再把SSL加上去就行。
依我个人经历而言,你的最大问题其实不是加密,长连接的地方估计会花你更多精力,长连接如果能不用就去了吧。