简述接口数据安全的主要实现方式
一:数据校验常用算法: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
文章为作者独立观点,不代表股票自动交易程序化数据接口观点