对接接口开发, 需要对登录接口的请求参数进行加密吗?

公司的系统需要跟别的系统进行对接, 目前确定采用的技术是 http post 请求来进行对接, 接口调用方的使用过程如下:

1 接口调用方使用账号密码调用登录接口进行登录
2 接口调用方调用具体业务接口
3 接口调用方处理自己的业务.
4 接口调用方调用退出登录接口来退出登录

当然, http 请求是明文传输, 需要对请求参数和响应内容进行加密传输.
接口调用方调用具体业务接口时,需要对请求参数和响应参数进行加密没有什么疑问.
但是我犹豫的是, 调用登录接口和退出登录接口时,是否需要对请求参数和响应内容进行加密传输?
我个人觉得没必要对登录接口和退出登录接口进行加密, 但是由于没有经验, 害怕存在安全隐患, 所以一直犹豫着...
有哪位前辈能不能告知下,有没有必要对登录接口和退出登录接口的请求参数和相应内容进行加密?

阅读 6.4k
2 个回答

如果使用https的话,就可以不用专门加密了;如果是http,肯定是需要加密的。否则,别人“半路”抓包直接就拿到明文的密码了。
至于加密方案,有很多种。
比如,爱奇艺使用的RSA方式:

$(function () {
    var t="ab86b6371b5318aaa1d3c9e612a9f1264f372323c8c0f19875b5fc3b3fd3afcc1e5bec527aa94bfa85bffc157e4245aebda05389a5357b75115ac94f074aefcd";
    var a="10001";
    var i=RSAUtils.getKeyPair(a, "", t);
    var n=RSAUtils.encryptedString(i, '123456').replace(/\s/g, "-");
    alert(n); //加密后的密码
});

或者你自己定义一个算法,将密码打乱、加混淆(或者后端动态返回密钥 进行加密)。

  1. 最小成本是双方都使用https,这样保证传输内容不被泄露
  2. 可以考虑RSA加密算法,不过这样要改程序,不推荐
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进