base64出现空格的问题
2012-04-05 18:10
176 查看
如:将一串参数做了base64后直接作为url的一部分发送出去了。
要知道base64的算法有pad,crcf的控制选项,而又很凑巧,发使用的是none,即pading部分带有crcf,
这样一个正常的参数输入,会产生类似于:
ancdfdsfdsfdsfsadfasfsafafdsafadsfsafasdfasdfsad
fadfdsfsd==
注意上面换行的地方被加了cr cf 即0a 0d.
这样的url通过ie出去后,ie将0a 0d 转化为%20 即空格的编码? 这个为什么我现在还没有找到资料.
另外和我合作的服务端通知反映,他读到的参数是乱码,检查后发现是受到了+的干扰。
从具体来说base64中+ / 比较特殊,而/ 实际上并没有产生干扰,而+在服务端通知读取时候变成了空格,注意是空格不是%20.
"
加号(+)是BASE64编码的一部分,而加号在QueryString中被当成是空格。 因此,当一个含有BASE64编码的字符串直接作为URL的一部分时,如果其中含有加号,则使用QueryString读取时,再使用BASE64解码就会发生错误。 解决的办法有两个:一是使用BASE64的字符串作为URL的一部分是,使用UrlEncode一类的函数进行编码;二是在接收BASE64字符串后,使用ReplaceAll将字符串中的空格替换成加号,然后再解码。
"
另外我从c端的抓包发现从c端发出的数据确实0a 0d 被替换为%20 %20发出,但是+ / 已然不变。
也就是说服务端必定有某个层次能够得到原始数据,而问题可能就像上面引用部分文字描述的那样,即+被querystring之类的API做了手脚比如urlencoding。
要知道base64的算法有pad,crcf的控制选项,而又很凑巧,发使用的是none,即pading部分带有crcf,
这样一个正常的参数输入,会产生类似于:
ancdfdsfdsfdsfsadfasfsafafdsafadsfsafasdfasdfsad
fadfdsfsd==
注意上面换行的地方被加了cr cf 即0a 0d.
这样的url通过ie出去后,ie将0a 0d 转化为%20 即空格的编码? 这个为什么我现在还没有找到资料.
另外和我合作的服务端通知反映,他读到的参数是乱码,检查后发现是受到了+的干扰。
从具体来说base64中+ / 比较特殊,而/ 实际上并没有产生干扰,而+在服务端通知读取时候变成了空格,注意是空格不是%20.
"
加号(+)是BASE64编码的一部分,而加号在QueryString中被当成是空格。 因此,当一个含有BASE64编码的字符串直接作为URL的一部分时,如果其中含有加号,则使用QueryString读取时,再使用BASE64解码就会发生错误。 解决的办法有两个:一是使用BASE64的字符串作为URL的一部分是,使用UrlEncode一类的函数进行编码;二是在接收BASE64字符串后,使用ReplaceAll将字符串中的空格替换成加号,然后再解码。
"
另外我从c端的抓包发现从c端发出的数据确实0a 0d 被替换为%20 %20发出,但是+ / 已然不变。
也就是说服务端必定有某个层次能够得到原始数据,而问题可能就像上面引用部分文字描述的那样,即+被querystring之类的API做了手脚比如urlencoding。
相关文章推荐
- IO流读取文件内容时,出现空格的问题(未找到原因)
- Base64编码详解及其变种(解决加号在URL变空格问题)
- base64加密使用urlencode出现的问题
- 关于getByte()方法的说明,本地调用base64没问题,远程调用就出现问题
- [Android Pro] http请求中传输base64出现加号变空格的解决办法
- 解决IIS出现包含空格的项目的文件/路径部分需要用括号括起来的问题
- 解决html换行出现空格问题
- 学习Python csv模块遇到AttributeError: module 'csv' has no attribute 'writer'和写入后出现空格问题
- base64 空格的问题
- Linux 挂载ISO问题-iso的命名不能出现空格
- http请求中传输base64出现加号变空格的解决办法
- 在做附件上传时出现上传文件空格问题
- angularjs select 循环中出现第一个 option 为空格问题
- PHP解决base64_decode解密出现的乱码问题
- 编译Python出现Tab,空格的问题
- 文本框的初始值出现空格问题
- Base64的空格 + 问题...
- RSA 加密与Base64 +号变空格的问题
- 编译Python出现Tab,空格的问题
- 用base64加解密解决用xml传输图片或附件生成时出现乱码的问题