iOS UrlEnCode加密需要注意

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 今天跟安卓的同学对接一个问题, 发现了一个及其坑爹的BUG, 安卓在进行UrlEncode编码时, 将空格转义为了"+", 但是iOS这边进行UrlEncode编码时, 是将空格转义为"%20", 这不坑爹的嘛, 在对接的时候两边数据对不上

今天跟安卓的同学对接一个问题, 发现了一个及其坑爹的BUG, 安卓在进行UrlEncode编码时, 将空格转义为了"+", 但是iOS这边进行UrlEncode编码时, 是将空格转义为"%20", 这不坑爹的嘛, 在对接的时候两边数据对不上


在Stack Overflow上找到了解释URL encoding the space character: + or %20?


简单来说就是:%20是比较老一点的写法,现在的做法是:url中的“?”前的空格要转义成“%20”,“?”之后的空格要转义成“+”!


而Jave系统中自带的方法是这么做的, 但是在iOS系统中调用

[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

是将空格转义为了"%20"


经测试后


屏幕截图 2022-05-08 090926.png

image.png


后来这边的处理方法为


特殊字符使用

[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"#%<>[\]^`{|}"]+"].invertedSet];

这个方法去进行UrlEnCode转义,


然后iOS端在解析之前, 先将未转义的字符串中的"+"替换为" "空格


然后再进行

[str stringByRemovingPercentEncoding];

iOS端就可以正常解析使用, 暂时只能想到这个方法




目录
相关文章
|
3月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享安卓与iOS开发中的线程管理比较
【8月更文挑战第30天】本文将探讨网络安全与信息安全的重要性,并分享关于网络安全漏洞、加密技术和安全意识的知识。我们将了解常见的网络攻击类型和防御策略,以及如何通过加密技术和提高安全意识来保护个人和组织的信息安全。
|
6月前
|
移动开发 安全 数据安全/隐私保护
【教程】Ipa Guard为iOS应用提供免费加密混淆方案
概述:使用ios加固工具对ios代码保护,保护ios项目中的核心代码,
|
6月前
|
移动开发 安全 前端开发
【教程】浅谈ios混淆和加固加密
【教程】浅谈ios混淆和加固加密
66 0
|
6月前
|
移动开发 前端开发 数据安全/隐私保护
【教程】Ipa Guard为iOS应用提供免费加密混淆方案
【教程】Ipa Guard为iOS应用提供免费加密混淆方案
95 0
|
6月前
|
安全 Java 数据安全/隐私保护
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
179 0
|
算法 安全 数据安全/隐私保护
iOS的RSA加密工具类
iOS的RSA加密工具类
267 0
iOS的RSA加密工具类
|
算法 数据安全/隐私保护 iOS开发
iOS开发 - 需要加密key的SHA256和MD5加密
iOS开发 - 需要加密key的SHA256和MD5加密
540 0
|
安全 Java 数据安全/隐私保护
关于iOS开发中使用到的AES加密和SHA256加密的使用
关于iOS开发中使用到的AES加密和SHA256加密的使用
1204 0
|
算法 数据安全/隐私保护 iOS开发
IOS加密 AES 256算法(EncryptAndDecrypt.h)
IOS加密 AES 256算法(EncryptAndDecrypt.h)
293 0
|
存储 安全 算法
iOS 防止反编译加密方法
对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息
243 0