2 个回答

现在比较主流的是 RSA 的非对称加密,安全性相对较好且暴力破解难度极大。

前端的话你可以用像是 jsencrypt 的比较成熟的库进行加密处理,地址

我的理解是这样的:

  1. 首先你应该已经用了HTTPS,即TLS,来做传输加密。TLS加密的过程是先验证服务器(HTTPS证书),然后用非对称加密方式交换后续的对称加密密钥,接着用对称加密的方式传输数据。整个过程可以有效防止中间人攻击。不用HTTP,降低通信层级到TCP,同样可以用TLS。
  2. 在HTTPS场景下被中间人攻击,一般是没有做服务器验证,比如你现在从很多浏览器上提示证书不安全的情况下选择信任服务器。类似的,如果你的使用场景用的是自己写的客户端(例如一些IoT设备),不做服务器验证也是比较危险的。主流浏览器都已经做好这一步了。
  3. 在已有这套传输加密的场景下,前后端间使用对称加密,只可以增加攻击者的攻击难度(去理解你的代码),毕竟放在前端的密钥是可以被大家获取到的。效果如何视需求场景需要自行评估。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题