一种iOS移动端和服务器后端的数据交互方法技术

技术编号:35854625 阅读:30 留言:0更新日期:2022-12-07 10:40
本发明专利技术揭示了一种IOS移动端和服务器后端的数据交互方法,涉及互联网技术领域;该方法包括以下的步骤:S10、通过生成证书文件;S20、将RSA公钥放到服务端,APP启动时先检查RSA公钥的更新状态;S30、通过步骤S20得到非对称加密RSA的公钥文件,使用RSA公钥对该AES秘钥进行加密;S40、服务器后端获取到IOS移动端的请求数据,把加密后的数据返回给IOS移动端;S50、通过调用服务器后端提供的业务交互接口进行IOS移动端和服务器后端的数据交互;S60、通过对步骤S50中获得各个业务接口的响应数据进行解析,从而将数据应用到IOS移动端对应的场景中;本发明专利技术的有益效果是:通过对传输的数据、秘钥进行加密,避免在和服务器后端进行数据交互是的明文传输,确保数据安全。确保数据安全。确保数据安全。

【技术实现步骤摘要】
一种iOS移动端和服务器后端的数据交互方法


[0001]本专利技术涉及互联网
,更具体的说,本专利技术涉及一种iOS移动端和服务器后端的数据交互方法。

技术介绍

[0002]IOS是苹果公司开发的移动操作系统,IOS客户端运行于IOS系统上。现有的IOS客户端与HTML页面的交互方法,通常基于JavaScriptCore实现IOS客户端和HTML页面的数据交互。
[0003]现有技术中,关于IOS移动端和服务器后端的数据交互,普遍存在以下问题:其一、当前iOS移动端的应用若不未进行证书的校验传输数据容易被抓包;其二、当前iOS移动端的应用,在和服务器后端进行数据交互传输时未经加密处理,容易被破解。

技术实现思路

[0004]为了克服现有技术的不足,本专利技术提供一种iOS移动端和服务器后端的数据交互方法,通过对传输的数据、秘钥进行加密,避免在和服务器后端进行数据交互是的明文传输,确保数据安全。
[0005]本专利技术解决其技术问题所采用的技术方案是:一种IOS移动端和服务器后端的数据交互方法,其改进之处在于,该方法包括以下的步骤:
[0006]S10、通过生成证书文件,并开启IOS移动端设置证书验证模式,防止被抓包;
[0007]S20、将RSA公钥放到服务端,APP启动时先检查RSA公钥的更新状态,有更新则下载并更新,无更新则正常调用和服务端进行数据交互的接口;
[0008]S30、通过步骤S20得到非对称加密RSA的公钥文件,生成固定长度随机数作为对称加密AES的加解密秘钥,使用对称加密AES方式对请求体content进行加密,通过得到的RSA的公钥文件,使用非对称加密RSA公钥对AES秘钥进行加密;
[0009]S40、通过步骤S30,服务器后端获取到IOS移动端的请求数据,服务器后端通过校验、解析,最终将需要返回的数据镜像加密,并把加密后的数据返回给IOS移动端;
[0010]S50、通过调用服务器后端提供的业务交互接口进行IOS移动端和服务器后端的数据交互,通过步骤S30进行移动端的参数加密,通过步骤S40实现服务器后端对数据的响应;
[0011]S60、通过对步骤S50中获得各个业务接口的响应数据进行解析,从而将数据应用到IOS移动端对应的场景中。
[0012]进一步的,步骤S10中,包括以下的步骤:
[0013]S101、通过证书机构颁发的证书文件,生成超文本传输安全协议https的公钥证书格式文件cer,命名为certificate.cer,并将该文件放到iOS移动端开发项目xcdoe工程的根目上;
[0014]S102、通过二进制数据NSData的实例化方法dataWithContentsOfFile将公钥证书文件certificate.cer文件转换为二进制的NSData格式数据data;
[0015]S103、若有多个公钥证书则通过步骤S101和S102生成多个二进制数据格式的data;
[0016]S104、通过证书验证方式AFSecurityPolicy初始化证书模式,并将得到的该初始化对象定义为securityPolicy;
[0017]S105、设置证书实例对象securityPolicy的是否开启证书检验属性allowInvalidCertificates的值为true,表明需要验证自建证书;
[0018]S106、设置证书实例对象securityPolicy的是否验证域名属性属性validatesDomainName的值为false,表明不用在证书域字段中验证域名;
[0019]S107、设置证书实例对象securityPolicy的证书数据参数pinnedCertificates的值,将步骤S101

S103生成的二进制数据NSData数据赋值给上去;
[0020]S108、将上述得到的证书实例对象securityPolicy赋值给网络请求单例AFHTTPSessionManager,从而实现在iOS移动端调用服务端接口时,进行证书的安全性校验。
[0021]进一步的,步骤S30中,请求体对象content包含的业务参数包括请求来源src、当前应用版本号version、当前设备唯一标识deviceId。
[0022]进一步的,步骤S20中,包括以下的步骤:
[0023]S201、约定好必要条件,该必要条件包括对称加密AES的加密密钥、加密长度sizes、位移padding、模式model;
[0024]S202、生成非对称加密RSA的公钥文件,并通过步骤S201中的AES加密后存储到服务器上;
[0025]S203、APP启动的时候检查是否需要下载RSA公钥文件的标识,如果需要则调用服务端下载RSA公钥接口,进行下载步骤S202中输出的公钥;
[0026]S204、约定好需要更新公钥的标识,当公钥有更新时,在当前调用服务端的接口中把需要更新公钥的标识返回给IOS移动端,IOS移动端在统一接口封装拦截和解析该状态,若检测到则更新需要下载RSA公钥的标识,再下次调用服务端接口进行网络请求时,则需要先下载步骤S202中输出的公钥,再往后执行;
[0027]S205、当APP通过步骤S202下载得到公钥时,则通过步骤S201约定的秘钥,解密得到RSA公钥。
[0028]进一步的,步骤S30中,包括以下的步骤:
[0029]S301、定义生成随机字符串方法为

(NSString*)getRandomStringWithLength:(NSInteger)length;
[0030]S302、通过循环方法for循环,以步骤S301的长度length作为最大循环次数,在循环里通过随机数方法arc4random获取随机数的值定义为a,然后通过对a取余得到每次循环的随机值,再通过字符串拼接方法stringByAppendingString将这些随机值拼接起来,最终输出一个随机字符串;
[0031]S303、IOS移动端在调用服务端接口获取数据时,先通过步骤S301中获取随机数方法getRandomStringWithLength生成随机的一定长度的随机字符串,做为对称加密AES秘钥AESKey用于对请求的参数进行对称加密;
[0032]S304、网络请求时,将请求的参数转换成数据交换格式JSON字符串,通过获取到的
随机秘钥,使用对称加密方式AES对该请求体字符串进行加密得到加密后的请求体content;
[0033]S305、通过得到的非对称加密RSA的公钥,通过该公钥对获得的随机秘钥AESKey进行非对称加密,输出值为checkKey;
[0034]S306、对请求的参数进行sha256的签名输出签名值sign,用于服务端验证该请求的合法行;
[0035]S307、将得到的由请求参数生成的请求体content、经过非对称加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种IOS移动端和服务器后端的数据交互方法,其特征在于,该方法包括以下的步骤:S10、通过生成证书文件,并开启IOS移动端设置证书验证模式,防止被抓包;S20、将RSA公钥放到服务端,APP启动时先检查RSA公钥的更新状态,有更新则下载并更新,无更新则正常调用和服务端进行数据交互的接口;S30、通过步骤S20得到非对称加密RSA的公钥文件,生成固定长度随机数作为对称加密AES的加解密秘钥,使用对称加密AES方式对请求体content进行加密,通过得到的RSA的公钥文件,使用非对称加密RSA公钥对AES秘钥进行加密;S40、通过步骤S30,服务器后端获取到IOS移动端的请求数据,服务器后端通过校验、解析,最终将需要返回的数据镜像加密,并把加密后的数据返回给IOS移动端;S50、通过调用服务器后端提供的业务交互接口进行IOS移动端和服务器后端的数据交互,通过步骤S30进行移动端的参数加密,通过步骤S40实现服务器后端对数据的响应;S60、通过对步骤S50中获得各个业务接口的响应数据进行解析,从而将数据应用到IOS移动端对应的场景中。2.根据权利要求1所述的一种IOS移动端和服务器后端的数据交互方法,其特征在于,步骤S10中,包括以下的步骤:S101、通过证书机构颁发的证书文件,生成超文本传输安全协议https的公钥证书格式文件cer,命名为certificate.cer,并将该文件放到iOS移动端开发项目xcdoe工程的根目上;S102、通过二进制数据NSData的实例化方法dataWithContentsOfFile将公钥证书文件certificate.cer文件转换为二进制的NSData格式数据data;S103、若有多个公钥证书则通过步骤S101和S102生成多个二进制数据格式的data;S104、通过证书验证方式AFSecurityPolicy初始化证书模式,并将得到的该初始化对象定义为securityPolicy;S105、设置证书实例对象securityPolicy的是否开启证书检验属性allowInvalidCertificates的值为true,表明需要验证自建证书;S106、设置证书实例对象securityPolicy的是否验证域名属性属性validatesDomainName的值为false,表明不用在证书域字段中验证域名;S107、设置证书实例对象securityPolicy的证书数据参数pinnedCertificates的值,将步骤S101

S103生成的二进制数据NSData数据赋值给上去;S108、将上述得到的证书实例对象securityPolicy赋值给网络请求单例AFHTTPSessionManager,从而实现在iOS移动端调用服务端接口时,进行证书的安全性校验。3.根据权利要求2所述的一种IOS移动端和服务器后端的数据交互方法,其特征在于,步骤S20中,包括以下的步骤:S201、约定好必要条件,该必要条件包括对称加密AES的加密密钥、加密长度sizes、位移padding、模式model;S202、生成非对称加密RSA的公钥文件,并通过步骤S201中的AES加密后存储到服务器上;
S203、APP启动的时候检查是否需要下载RSA公钥文件的标识,如果需要则调用服务端下载RSA公钥接口,进行下载步骤S202中输出的公钥;S204、约定好需要更新公钥的标识,当公钥有更新时,在当前调用服务端的接口中把需要更新公钥的标识返回给IOS移动端,IOS移动端在统一接口封装拦截和解析该状态,若检测到则更新需要下载RSA公钥的标识,再下次调用服务端接口进行网络请求时,则需要先下载步骤S202中输出的公钥,再往后执行;S205、当APP通过步骤S202下载得到公钥时,则通过步骤S201约定的秘钥,解密得到RSA公钥。4.根据权利要求3所述的一种IOS移动端和服务器后端的数据交互方法,其特征在于,步骤S30中,请求体对象content包含的业务参数包括请求来源s...

【专利技术属性】
技术研发人员:潘信璋
申请(专利权)人:银盛支付服务股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1