Base64加密后的数据通过http传输后,后台接收到的数据会出现空格的问题分析

这篇具有很好参考价值的文章主要介绍了Base64加密后的数据通过http传输后,后台接收到的数据会出现空格的问题分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在项目中使用fetch发请求,开始时选择自己将post请求的body参数使用&进行拼接,但是在发送请求时在控制台显示的参数,有的会存在传递的+变成空格的情况,百思不得其解。

查阅资料后发现可能是http传参时urlencoded的问题(因为我的post请求的content-Type是application/x-www-form-urlencoded), 一开始在代码中我自己手动构造了url的params参数进行传递,改成qs.stringify方法将请求参数进行编码就没有这个问题了。

原因:浏览器会自动将加密的加号(+)变成空格 ,导致后端解码失败

解决:

1. 使用encodeURIComponent对加密后的参数的特殊符号进行处理一下(这种方法对于formdata格式的数据来说不适用,因为调接口时无法解析成formdata格式的数据)

2. 或者直接使用qs.stringify方法。

(此处主要考虑前端解决,后端解决的话可以与后端商议,将空格再转化为+)

原代码:

base64 空格,http,网络协议,网络

// 生成body参数
const makeFetchBodyParams = (params) => {
	let values = '';
    Object.keys(params).forEach(key => {
		const str = key + '=' + params[key] + '&';
		values += str ;
    });
	console.log('valuesvalues',values)
	return values.slice(0,-1)
}

 修改之后:

base64 空格,http,网络协议,网络

注:qs库是用来发送formdata数据的,并且可以改变数据格式,同时他还可以去掉options预请求。以后发送formdata类型的数据尽量使用qs.stringify。 文章来源地址https://www.toymoban.com/news/detail-780239.html

到了这里,关于Base64加密后的数据通过http传输后,后台接收到的数据会出现空格的问题分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用python通过http实现文件传输,分为发送端和接收端

    要使用Python通过HTTP实现文件传输,可以使用Python的 requests 库来发送和接收HTTP请求。以下是一个示例代码,其中包括发送端和接收端的实现。 发送端: 接收端: 在这个示例中,发送端使用 requests.post() 方法发送文件到指定的URL。接收端使用Flask框架创建一个HTTP服务器,并在

    2024年02月15日
    浏览(44)
  • 前端如何加密数据--五种方式(base64加密、md5加密、sha1加密、字符串方法加密、AES加密)

    1.base64加密(包括小写字母a-z、大写字母A-Z、数字0-9、符号\\\"+\\\"、\\\"/\\\"一共64个字符的字符集,另加一个“=”,实际是65个字符) 字符串转换为base64:str64 = window.btoa(str) base64转换为字符串:str=window.atob(str64) 2.md5加密 3.sha1加密   4.字符串的编码和解码(JS函数的escape()和unescape())

    2024年02月16日
    浏览(58)
  • C#集成数据加密算法,包含DES、RSA、Base64、SHA、MD5算法,轻松实现数据加密解密需求

    在需要使用配置文件的工控软件中,往往需要在配置文件和数据库中对一些数据加密,即对一串数据进行加密算法后输出复杂符号和字符的形式,让非相关人员无法识别原有数据,从而对数据或数据库进行相应的保护,这往往也是公司安全部门的基本要求。 网上写加密算法的

    2024年02月03日
    浏览(79)
  • base4解密(Base64加密算法)

    base64解密解码转换说明: 1、Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’。 2、为了保

    2024年02月16日
    浏览(111)
  • base64加密解密

    base64加密解密过程 Base64会使用一串固定编码: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 加密过程 想要使用Base64加密,原文长度必须是3的倍数。如果原文不是3的倍数就填充其他符号来凑足成3的倍数; 1,将明文对照以ACSSI码表转换成一个8位二进制数; 2,将转换后的数

    2024年02月04日
    浏览(50)
  • 将文件base64编码后传输

    2024年02月07日
    浏览(42)
  • 【base64加密】js/ts的基础加密

    base64的字符串简单加密,主用于网页缓存数据的加密。 适用于常规html、小游戏(egret、cocos、laya)等 原文参考:JS基于base64编码加密解密文本和图片(修订)_js base64加密-CSDN博客 测试:JS实现base64加密解密的方法 - web开发 - 亿速云 使用方法:

    2024年02月07日
    浏览(43)
  • Java的Base64加密解密详解

    大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在当今数字化时代,数据的安全性和可传递性变得尤为重要。Java编程语言提供了 Base64 编码和解码的工具,成为保障数据传输和存储安全性的一项重要技术

    2024年04月15日
    浏览(59)
  • 微信小程序之 base-64加密、解密

    后端获取 token 接口,需要加密认证

    2024年02月11日
    浏览(59)
  • jmeter下载base64加密版pdf文件

    如下图所示,接口jmeter执行后, 返回一串包含大小写英文字母、数字、+、/、=的长字符串 ,直接另存为pdf文件后,文件有大小,但是打不开;另存为doc文件后,打开可以看到和接口响应一致的长字符串。 仔细查看该接口具体信息,感觉和 ContentType: application/octet-stream、Cont

    2024年02月22日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包