前后端分离html怎么调用接口,前后端分离调用api接口加密方式

在看文章时无意间发现的此文,自己还没有尝试,有时间尝试一下,再贴代码,如果感兴趣可以试一下哦

参考各方资料结合自己的理解写的此文,

可实现接口调用防抓包,防篡改,防重发攻击,

1.服务端配置一对RSA密钥对,公钥pubkey_server,私钥prikey_server,并将pubkey_server写到web端js中

2.web端打开登录页,生成一对RSA密钥对,公钥pubkey_client,私钥prikey_client

3.登陆操作:

a.web端用pubkey_server加密如下信息,调用服务端登陆方法

{

loginname:'admin',

password:'123456',

pubkey_client:'这是pubkey_client'

}

b.服务端用prikey_server解密登陆参数,验证登陆信息,并把pubkey_client保存到服务端缓存

c.服务端生成AES对称加密的key,用pubkey_client加密如下返回结果,返回登陆信息

{

token:'这是认证token',

aeskey:'这是动态生成的aes加密key',

status:'登陆成功'

}

c.web端收到登陆结果信息,用prikey_client解密,拿到token和服务端动态生成的aeskey

4.接口调用:

a.用aeskey加密如下参数调用服务端api接口

{

token:'认证token',

param:'接口参数',

timestamp:'这是一个时间戳',

sign:'签名,对token,param,timestamp做md5运算得到的签名'

}

b.服务端收到web端参数,用对应的aeskey解密,

然后做签名运算,校验是否被篡改,

然后判断时间戳是否在1分钟之内,如果不是提示参数已经过期,

如果是,则写入redis,过期时间1分钟,防止重发调用(拿请求参数判断redis里是否存在,如果存在则是重发的调用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值