这几天因为项目的需求,我负责的项目需要跟另外一个项目的进行数据交互。在对接中我们就要考虑数据安全的问题。之前没有怎么接触过。这几天从网上搜了相关的资料,自己总结了一下,写了一个Demo,写的很粗糙,希望大家提提意见。
首先,得我说明一下,整个验证的流程:
1、第一次握手,客户端发向服务端发起请求,服务端生成公钥和私钥,保留私钥,返回公钥给客户端
2、第二次握手,客户端获取到公钥,用公钥将用户名和密码进行加密。同时客户端也生成一对钥匙,保留私钥,将公钥和加密后的用户名和密码传输给服务端,服务端用私钥解密用户名和密码。进行用户信息对比,如果对比成功。返回一个token(令牌)给客户端,同时,服务端保存用户和token的对应关系。
3、调用API,客户端获取token后,开始调用服务端的API,客户端把需要传递的参数和时间戳还有token,通过加密短发生成一个sign签名,传给服务端,服务端用同样的算法对明文加密后与sign进行对比,对比通过,返回成功标示。
代码如下:
客户端的握手操作代码:
服务端的握手代码:
Toekn验证机制的java案例
最新推荐文章于 2023-04-11 21:24:04 发布