http报文加密解决方案

(服务器或客户端)一般的用MD5对报文体(即参数)加密生成一段摘要(字符串、比报文体短得多),然后用RSA进行加密,这里必须设定一个规则,比如对报文体(参数)进行组合排列。

  1. 服务器端验证:客户端对报问体先进行MD5加密,生成一段字符串A,然后对字符串A进行RSA加密再生成字符串B,把字符串B加入到header然后对服务器发送请求。服务器接收到请求,对请求体(参数)也进行MD5 RSA加密生成字符串C。服务器对字符串C和B进行对比。如果相同,则是认为是客户端正常请求,如果不同:则认为有人恶意请求,不予回复。
  2. 客户端验证:对header里某几个公共参数(或是重要的返回数据进行加密,自定义规则,打乱顺序,)进行 MD5加密生成字符串A RSA加密生成字符串B,回复给客户端,客户端拿到字符串B,自己对header里的某几个公共参数MD5 RSA加密生成字符串C。判断B与C是否相同。相同即认为是服务器返回的报文,不相同即认为有人恶意修改数据。

更高级别的安全加密:公私钥加密
通过Linux open SSL 工具 在Linux服务器生成两对公钥和私钥,客户端、服务端各一对。客户端通过私钥对报文体加密得到字符A,服务端使用公钥对字符串A解密(使用JAVA API传入字符串A报文,公钥,报问题),会返给true false。 反之,服务器用私钥加密,客户端用公钥解密。

猜你喜欢

转载自blog.csdn.net/csdn1125550225/article/details/80725979