欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-14 15:04:16
...

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

一:数据校验
常用算法: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