资讯专栏INFORMATION COLUMN

一次项目中的验签加密的一些坑(主要是数据格式问题)

xioqua / 610人阅读

摘要:最近接手了一个项目是一个比较完整的项目了我需要进行改造是基于开发的其中有一个功能就是我们每个请求都要进行一次验签就是取一些字符串进行加密并将验签加入请求头中后台也用相同的算法进行加密然后比对这个功能本身是写好的但是有些问题我们其中的加密字段

最近接手了一个项目
是一个比较完整的项目了 我需要进行改造 是基于vuecli3.0+webpack开发的u
其中有一个功能就是我们每个请求都要进行一次验签 就是取一些字符串进行加密 并将验签加入请求头中 后台也用相同的算法进行加密 然后比对
这个功能本身是写好的 但是有些问题
我们其中的加密字段是穿的参数按照字母排序 然后取第一个参数的前三位和最后一个参数的后三位
这都很简单用sort()方法排序一下就行
第一个问题就是
axios直接传值的话服务端会认为是字符串所以截取的时候会将符号也截取一般就成了{"+排序第一的参数的第一个字母和排序最后一个参数的最后一个字母 + "} 这样明显是有问题的 不过这个解决也简单 直接用qs这个插件处理一下就ok 这里我做了一个处理 如果requestData是类型是字符串 用

requestData.split("&").sort().join("").replace(/([^=><])=([^=><])/g,"$1$2");

进行排序
如果是对象 用

    for (var i in requestData) {
            dataString += `${i}${requestData[i]}&`
                }
                dataString = dataString.split("&").sort().join("")

进行排序
这样就解决了大部分的问题

但是昨天突然有一个模块说验签又不过了
我就很奇怪 就让后端小哥把没加密的串返回给我对比了一下
首先还是我上面说的截取到了符号 这个简单 qs处理一下
然后这里的问题是用qs处理过后 参数中如果带有中文 后端接收到的其实是中文 但是qs自己会对中文进行encodeURIComponent转码 这个处理也很简单 使用decodeURIComponent() 函数进行解码就可以

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105368.html

相关文章

  • 微信支付 一步一个APP支付!

    摘要:开发流程准备完成后我们来看一下支付的大体流程商户应用与微信支付主要的交互说明用户在商户应用移动端中选择商品提交订单,支付方式选择微信支付。商户应用后台收到用户支付订单,调用微信支付中的统一下单接口。 引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付(APP支付),微信给的官方文档并不是很详细也没有dome之类的代码啥的(...

    DandJ 评论0 收藏0
  • 微信支付 一步一个APP支付!

    摘要:开发流程准备完成后我们来看一下支付的大体流程商户应用与微信支付主要的交互说明用户在商户应用移动端中选择商品提交订单,支付方式选择微信支付。商户应用后台收到用户支付订单,调用微信支付中的统一下单接口。 引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付(APP支付),微信给的官方文档并不是很详细也没有dome之类的代码啥的(...

    tracymac7 评论0 收藏0
  • 回眸曾经项目,与第三方支付相关,所带来沟通问题

    摘要:钱可以存储在自己的余额中,这就相当于微信钱包,余额可以提现到银行卡的中。我们的第三方支付平台是连连支付,杭州的一家公司。私钥怎么加签每个公司的加签方式是不一样的,支付宝有支付宝的加签方式,微信有微信的加签方式。 导读 笔者在校期间,通过自学java。学校里也开过这门课,但是,讲的都是一些基础,比如java的表达式、基本类型、自定义类型等等。也都是很基础的东西,就连lambda表达式都没...

    kaka 评论0 收藏0
  • 【大量干货】史上最完整Tengine HTTPS原理解析、实践与调试

    摘要:内容主要有四个方面趋势基础实践调试。一趋势这一章节主要介绍近几年和未来的趋势,包括两大浏览器和对的态度,以及淘宝天猫和阿里云的实践情况。完整性是指为了避免网络中传输的数据被非法篡改,使用算法来保证消息的完整性。 摘要: 本文邀请阿里云CDN HTTPS技术专家金九,分享Tengine的一些HTTPS实践经验。内容主要有四个方面:HTTPS趋势、HTTPS基础、HTTPS实践、HTTPS...

    snowell 评论0 收藏0
  • 支付开发填记之支付宝

    摘要:原文地址支付支付步骤为获取支付宝的配置信息。将得到的数据请求支付宝客户端进行支付。端将拼接好的字符串拿去请求支付宝客户端即可调起支付宝进行支付。向支付宝申请新订单,获取支付。成功请求回来后,就可以向支付宝发出一次支付请求。 支付宝在所有支付方式中最好开发的了,因为文档比较清晰,而且开发起来也比较简单。因此,支付宝的坑是相对较少的。原文地址 APP支付 APP支付步骤为: 获取支付宝的...

    chanjarster 评论0 收藏0

发表评论

0条评论

xioqua

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<