Api接口数据安全及数据加密方式主要流程实现

简述接口数据安全的主要实现方式

一:数据校验
常用算法:MD5,SHA1
流程:
1:前端生成数据后按照约定方式生成一个sign 校验字段(一般通过MD5或者SHA1 方式),一并提交给后端;
2:后端获得参数后通过同样的方式生成sign 然后跟接口携带的sign对比是否一致,以此判断数据是否被修改;
eg:下面接口文档中的sign

接口参数有:
	1 order_id:订单号,唯一,长度小于30
	2 money:金额,分
	3:type:支付类型 alipay(个码),alipay(支付宝),wechat(微信) 多选一
	4:appid:用户的appid
	5:c_url:回调url 需要urlencode(不填默认是商户后台填写的)
	6:time:时间秒数
	7:sign:验证,规则(sign=md5(order_id+money+type+time+appid+key),所有都转换为字符串)

返回数据格式:
		{
			"code": 1,
			"msg": "succ",
			"data": {
				"order_id": "1545054693",
				"type": "alipay",
				"url": "alipays:\/\/platformapi\/startapp?appId=20000067&url=http://admin.php05.cn/pay/index/alipay?ms=1545054693=u_1&t=1545054610&tk=a53f9db256e66e4e",
				"url_2": "http://admin.php05.cn/pay/index/alipay?ms=1545054693=u_1&t=1545054610&tk=a53f9db256e66e4e", //复制链接
				"apply_time": "2018-12-17 21:50:10"
			},
			"sign": "f1b128b52b17856839597c7494628d6d",
			"time": 1545054610
		}

优点:对数据一致性做校验,数据不易被随便修改;
缺点:数据是明文传输,容易被猜测甚至伪造,一旦密钥跟生成sign 方式泄露,数据是可能是修改后伪造的;

二:对称加密方式
常用算法:BASE64,AES;
流程:
1:前端通过一定算法或者密钥对数据进行加密;
2:后端通过相同逆向的方式对数据进行解密;

优点:数据是密文,一般人看不懂,不易泄露,加密解密方式简单;
缺点:密钥必须保存在前端,容易泄露,泄露后数据将被解密甚至伪造;

三:非对称加密
常用算法:RSA,DSA
流程:
1:后端生成公钥,私钥;
2:前端请求公钥,并保存;
3:前端通过公钥加密数据传输给后端;
4:后端通过私钥解密数据后通过私钥加密返回数据给前端;

优点:密文传输,私钥放后端不易泄露,前端提交数据是安全的,不易被解密或者修改;
缺点:后端返回的数据可能会被截取解密(因为公钥是公开的);

四:Https 实现方式 对称加密+非对称加密(会话密钥模式)
常用算法:AES+RSA
流程:
1:后端生成公钥,私钥保存
2:前端获取公钥,保存
3:前端会话前获取随机数,并通过公钥加密后作为会话密钥对数据进行对称加密后传输给后端
4:后端获取到加密会话密钥 通过私钥解密出真正的会话密钥,返回数据时通过真正的会话密钥对数据加密
5:前端获得后端返回的加密数据通过自己之前随机生成的会话密钥解密数据

优点:数据提交跟返回都是密文,且密钥是会话时随机生成并非直接保存在前端不变,不易泄露,保证提交数据跟返回数据都是加密,安全的
缺点:多次加密解密,相对比较耗cpu

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值