本发明涉及计算机技术领域,具体涉及一种安全支付方法、系统、电子设备及可读存储介质。
背景技术:
智能终端是一种多功能终端,把它安装在信用卡的特约商户和受理网点中与计算机联成网络,就能实现电子资金自动转账,它具有支持消费、预授权、余额查询和转账等功能。智能pos以安卓为操作系统,以4g、网线、wifi为主要通讯方式,为商户提供银行卡支付、扫码支付、o2o应用、会员管理等丰富功能。智能pos终端相比传统pos终端,智能pos终端技术方面紧跟时代发展,可以提供更加强大技术基础,包括终端系统运算和处理能力、存储能力、通信能力、外设和多媒体能力,都得到很大的提升,为各种丰富的业务场景奠定了技术基础。为了方便支付落地到具体的业务支付场景,第三方应用往往需要通过银行系统的安全支付后去调用银行系统接口来完成支付,目前的安全支付和调用银行系统的方案均是通过对第三方应用程序包进行安全支付的验证后启动银行接口调用,即只要第三方应用程序包文件名具有银行系统安全支付的签名或满足银行的特定要去后,既可以实现对银行系统的调用,但是这种方案却存在一定的安全漏洞,在实际中存在通过修改或篡改程序包文件名来混淆或骗取银行安全支付的风险。
技术实现要素:
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例公开了一种安全支付方法,所述方法应用于安全支付系统,所述系统包括智能终端和支付apk的安全管理平台,其中所述智能终端进一步包括第三方apk和支付apk,所述方法包括:
第三方apk接收到用户请求调用支付apk时,支付apk判断所述第三方apk程序是否为安全管理平台授权认证的合法程序;
如果是,则智能终端执行所述调用请求调用支付apk;
所述支付apk根据所述第三方apk发送的支付请求完成支付。
进一步地,支付apk判断所述第三方apk程序是否为授权认证的合法程序包括:判断所述第三方apk中是否包括目标模块;其中所述目标模块包括具有所述支付apk安全管理平台授权标识的第三方apk的核心程序文件。
进一步地,所述具有所述支付apk安全管理平台授权标识的目标模块进一步包括:按照所述支付apk安全管理平台的预设加密规则加密生成的第三方apk核心程序文件。
进一步地,所述按照预设加密规则处理的目标模板的生成包括:所述安全管理平台对所述第三方apk的核心程序文件进行md5算法处理;所述安全管理平台利用第一密钥对第三方apk签名和随机加密因子进行md5算法加密处理;其中,所述第一密钥由安全管理平台生成;将所述处理后的核心程序文件和第三方apk签名组成目标模块压缩进所述第三apk目录中。
进一步地,所述判断所述第三方apk程序为安全管理平台授权认证的合法程序包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得所述核心程序文件的md5值和第三方apk签名的md5值;
智能终端计算核心程序文件的md5值和第三方apk签名的md5值;
当解密获取的核心程序文件的md5值和第三方apk签名的md5值分别与计算的值相同时,确定所述第三方apk为授权认证的合法程序。
进一步地,所述sdk文件的生成进一步包括:所述安全管理平台在标识第三方apk的目标模块时,将所述sdk文件集成在所述第三方apk程序文件中;所述sdk文件用于为所述第三方apk提供调用接口。
进一步地,所述执行所述调用请求调用支付apk之前,所述方法还包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得安全管理平台的随机加密因子;
第三方apk将安全管理平台的随机加密因子、第三方apk生成的加密因子和当前时间戳生成字符串;
第三方apk根据预设的处理规则将所述字符串生成授权码,并将所述授权码发送至支付apk进行校验;预设处理规则包括:第三方apk利用3des算法对所述生成的字符串进行加密处理后通过base64对所述字符串进行转码生成授权码;
当所述支付apk对所述授权码校验成功后,智能终端执行调用请求调用支付apk。
进一步地,所述支付apk校验所述授权码的过程包括:所述支付apk接收到第三方apk通过其sdk文件中的接口发送的调用请求时,所述支付apk通过所述接口按照预设处理规则对所述授权码进行逆向处理,处理成功则校验通过。
另一方面本申请实施例提供了一种安全支付系统,所述系统包括智能终端和支付apk的安全管理平台,所述智能终端进一步包括第三方apk和支付apk,其中:
第三方apk接收到用户请求调用支付apk时,支付apk判断所述第三方apk程序是否为安全管理平台授权认证的合法程序;
如果是,则智能终端执行所述调用请求调用支付apk;
所述支付apk根据所述第三方apk发送的支付请求完成支付。
进一步地,支付apk判断所述第三方apk程序是否为授权认证的合法程序包括:判断所述第三方apk中是否包括目标模块;其中所述目标模块包括具有所述支付apk安全管理平台授权标识的第三方apk的核心程序文件;所述具有授权标识的目标模块进一步包括按照所述支付apk安全管理平台的预设加密规则加密生成的第三方apk核心程序文件。
进一步地,所述按照预设加密规则处理的目标模板的生成包括:
所述安全管理平台对所述第三方apk的核心程序文件进行md5算法处理;
所述安全管理平台利用第一密钥对第三方apk签名和随机加密因子进行md5算法加密处理;其中,所述第一密钥由安全管理平台生成;
将所述处理后的核心程序文件和第三方apk签名组成目标模块压缩进所述第三apk目录中。
进一步地,所述判断所述第三方apk程序为安全管理平台授权认证的合法程序包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得所述核心程序文件的md5值和第三方apk签名的md5值;
智能终端计算核心程序文件的md5值和第三方apk签名的md5值;
当解密获取的核心程序文件的md5值和第三方apk签名的md5值分别与计算的值相同时,确定所述第三方apk为授权认证的合法程序。
进一步地,所述执行所述调用请求调用支付apk之前,所述系统还包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得安全管理平台的随机加密因子;
第三方apk将安全管理平台的随机加密因子、第三方apk生成的加密因子和当前时间戳生成字符串;
第三方apk根据预设的处理规则将所述字符串生成授权码,并将所述授权码发送至支付apk进行校验;其中,预设处理规则包括:第三方apk利用3des算法对所述生成的字符串进行加密处理后通过base64对所述字符串进行转码生成授权码;
当所述支付apk对所述授权码校验成功后,智能终端执行调用请求调用支付apk;
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述任一实施例中所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
本申请实施例提供的安全支付方案通过在被支付应用的管理机构授权认证的应用程序的开发过程中将程序中的核心文件部分按照安全管理平台的规则进行处理已达到具有安全管理平台授权标识的目的,这样在对第三方应用授权验证过程中就实现了对第三方应用程序中核心文件的授权验证,而非像现有技术中那样仅仅是对第三方应用程序包名称的授权验证,同时本申请实施例为了进一步提高第三方应用调用支付应用的安全性,还通过支付应用对第三方应用的授权码的验证后才启动调用程序。本申请实施例提供的技术方案带来的有益效果是至少包括以下之一:
(1)对具体应用程序文件进行授权,使用时会先校验应用程序的合法性,只有通过支付应用的服务器(或支付应用的管理企业)的授权验证才能对支付应用进行调用,相较现有技术仅校验对程序包名的授权,避免了重新打包或被篡改的应用名的无授权程序对支付系统的调用。
(2)采用多重加密算法加密和jni机制,极大的增加了反编译的难度,通过密钥分开保存提高了破译的难度。
(3)授权码由支付应用服务器提供的数据与本地数据及时间戳混合生成,随机变动,加密传输返回,难以模仿,提高了交易的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种安全支付方法的流程示意图;
图2为本申请实施例提供的一种安全支付系统的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,其中的“第一”“第二”等只是为了介绍清楚方案而进行的对象区分定义,并不对对象本身进行限制,当然“第一”和“第二”限定的对象可能是同一个终端、设备和用户等,也可能是同一种终端、设备和用户。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
此外应理解,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c可以是单个,也可以是多个。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
目前现有技术中的安全支付方案如背景技术中介绍的存在着灵活性差问题,基于此,本发明的以下实施例就是提供一种安全支付方法以解决上述至少之一的缺陷。
为了更清楚地介绍本申请的技术方案,以下介绍一些下述实施例可能涉及到的概念、术语或系统,以帮助理解本申请公开的安全支付方案:
3des(或称为tripledes)是三重数据加密算法(tdea,tripledataencryptionalgorithm)块密码的通称。它相当于是对每个数据块应用三次des加密算法。
rsa公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。rsa公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
md5信息摘要算法(md5message-digestalgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。md5算法的原理可简要的叙述为:md5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
apk,android设备上的程序包,安装文件。
sdk:软件开发工具包,在行业应用apk开发的过程中就需要集成进去,最终打包到apk里面,sdk提供了一系列api接口,供开发者调用。
apk签名:android机制中,在应用发布的时候,需要使用证书对整个应用进行签名,作为应用的身份标识。
图1示出了本申请实施例提供的一种安全支付的流程示意图,所述方法应用于安全支付系统,所述系统包括智能终端和支付apk的安全管理平台(简称安全管理平台),其中所述智能终端进一步包括第三方apk和支付apk,如图1所示,该方法主要可以包括:
s101、第三方apk接收到用户请求调用支付apk时,支付apk判断所述第三方apk程序是否为安全管理平台授权认证的合法程序;
s102、如果是,则智能终端执行所述调用请求调用支付apk;
s103、所述支付apk根据所述第三方apk发送的支付请求完成支付。
在进一步的实施例中,支付apk判断所述第三方apk程序是否为授权认证的合法程序包括:判断所述第三方apk中是否包括目标模块;其中所述目标模块包括具有所述支付apk安全管理平台授权标识的第三方apk的核心程序文件,即第三方apk核心程序文件按照所述支付apk安全管理平台的预设加密规则加密生成的目标模块,已达到能够将第三方apk进行合法程序授权认证标识的作用。
在进一步的实施例中,所述按照预设加密规则处理的目标模板的生成包括:
步骤1、所述安全管理平台对所述第三方apk的核心程序文件进行md5算法处理;所述安全管理平台利用第一密钥对第三方apk签名和随机加密因子进行md5算法加密处理;其中,所述第一密钥由安全管理平台生成;
步骤2、将所述处理后的核心程序文件和第三方apk签名组成目标模块压缩进所述第三apk目录中。
在具体实施例中,如果第三方应用的开发公司具有调用支付应用的需求,例如购物apk具有调用手机银行应用程序的需求,那么第三方应用开发公司可以先在线下通过支付应用管理机构的调用业务授权审核,审核通过后,开发者将开发好的第三方apk提交安全管理平台,安全管理平台计算出apk的核心程序文件(或称之为核心结构)的md5(非整个apk的md5,仅是核心程序文件的md5),读取apk签名的md5(后续简称签名md5),以及将一串加密因子组合成字符串,通过私钥(第一密钥)加密后放到第一个文件里面压缩在第三方apk文件中的安全管理平台文件名目录下。
在进一步的实施例中,所述判断所述第三方apk程序为安全管理平台授权认证的合法程序包括:
步骤1、第三方apk通过其程序包中的sdk文件中的接口读取并解密(根据第二密钥,即安全管理平台的私钥所对应的公钥)所述目标模块,获得所述核心程序文件的md5值和第三方apk签名的md5值所述sdk文件的生成进一步包括:所述安全管理平台在标识第三方apk的目标模块时,将所述sdk文件集成在所述第三方apk程序文件中;所述sdk文件用于为所述第三方apk提供调用接口。
步骤2、智能终端计算核心程序文件的md5值和第三方apk签名的md5值;
步骤3、当解密获取的核心程序文件的md5值和第三方apk签名的md5值分别与计算的值相同时,确定所述第三方apk为授权认证的合法程序。
在可选实施例中,在开发者将第三方apk开发文件上传或提交至安全管理平台进行上述授权认证打标的过程中,安全管理平台同时会将平台的一个sdk文件集成在该应用中用于为为所述第三方apk提供与支付相关请求的调用接口,在本申请中sdk中加解密算法(rsa,3des,md5,base64等)都由c 实现,编译成so动态库形式,加固后采用jni技术集成到sdk中,通过java接口对外提供接口。
安全管理平台生成rsa公私钥对,私钥由平台用于对apk签名等进行加密保留;公钥由安全sdk保留使用c 编译进so动态库里面,公钥用于sdk对第三方apk核心结构的解密。
在进一步的实施例中,所述执行所述调用请求调用支付apk之前,所述方法还包括:
步骤1、第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得安全管理平台的随机加密因子;
步骤1、第三方apk将安全管理平台的随机加密因子、第三方apk生成的加密因子和当前时间戳生成字符串;
步骤3、第三方apk根据预设的处理规则将所述字符串生成授权码,并将所述授权码发送至支付apk进行校验;预设处理规则包括:第三方apk利用3des算法对所述生成的字符串进行加密处理后通过base64对所述字符串进行转码生成授权码;
步骤4、所述支付apk接收到第三方apk通过其sdk文件中的接口发送的调用请求时,所述支付apk通过所述接口按照预设处理规则对所述授权码进行逆向处理,处理成功则校验通过。
步骤5、当所述支付apk对所述授权码校验成功后,智能终端执行调用请求调用支付apk。
基于图1所示的安全支付方法,另一方面本申请实施例提供了一种安全支付系统,如图2所示,系统可以包括:所述系统包括201智能终端和202支付apk的安全管理平台,所述201智能终端进一步包括2011第三方apk和2012支付apk,其中:
2011第三方apk接收到用户请求调用2012支付apk时,2012支付apk判断所述2011第三方apk程序是否为202安全管理平台授权认证的合法程序;
如果是,则201智能终端执行所述调用请求调用2012支付apk;
所述2012支付apk根据所述2011第三方apk发送的支付请求完成支付。
在进一步的实施例中,2012支付apk判断所述2011第三方apk程序是否为授权认证的合法程序包括:判断所述2011第三方apk中是否包括目标模块;其中所述目标模块包括具有所述2012支付apk202安全管理平台授权标识的2011第三方apk的核心程序文件;所述具有授权标识的目标模块进一步包括按照所述202安全管理平台的预设加密规则加密生成的2011第三方apk核心程序文件。
在进一步的实施例中,所述按照预设加密规则处理的目标模板的生成包括:
所述202安全管理平台对所述2011第三方apk的核心程序文件进行md5算法处理;
所述202安全管理平台利用第一密钥对2011第三方apk签名和随机加密因子进行md5算法加密处理;其中,所述第一密钥由202安全管理平台生成;
将所述处理后的核心程序文件和2011第三方apk签名组成目标模块压缩进所述第三apk目录中。
在进一步的实施例中,所述判断所述2011第三方apk程序为202安全管理平台授权认证的合法程序包括:
2011第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得所述核心程序文件的md5值和第三方apk签名的md5值;
201智能终端计算核心程序文件的md5值和第三方apk签名的md5值;
当解密获取的核心程序文件的md5值和第三方apk签名的md5值分别与计算的值相同时,确定所述2011第三方apk为授权认证的合法程序。
在进一步的实施例中,所述执行所述调用请求调用2012支付apk之前,所述系统还包括:
2011第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得202安全管理平台的随机加密因子;
2011第三方apk将202安全管理平台的随机加密因子、2011第三方apk生成的加密因子和当前时间戳生成字符串;
2011第三方apk根据预设的处理规则将所述字符串生成授权码,并将所述授权码发送至2012支付apk进行校验;其中,预设处理规则包括:2011第三方apk利用3des算法对所述生成的字符串进行加密处理后通过base64对所述字符串进行转码生成授权码;
当所述2012支付apk对所述授权码校验成功后,201智能终端执行调用请求调用2012支付apk;
可以理解的是,本实施例中的安全支付系统的上述各组成设备具有实现图1中所示的实施例中的方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或系统。上述模块和系统可以是软件和/或硬件,上述各模块和系统可以单独实现,也可以多个模块和系统集成实现。对于上述各模块和系统的功能描述具体可以参见图1中所示实施例中的方法的对应描述,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
可以理解的是,本发明实施例示意的结构并不构成对安全支付系统的具体结构的具体限定。在本申请另一些实施例中,安全支付系统可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的安全支付方法。
作为一个示例,图3示出了本申请实施例所适用的一种电子设备的结构示意图,如图3所示,该电子设备300包括:处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选的,电子设备300还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个。可以理解的是,本发明实施例示意的结构并不构成对电子设备300的具体结构的具体限定。在本申请另一些实施例中,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实。可选地,电子设备还可以包括显示屏305,用于显示图像,或需要时接收用户的操作指令。
其中,处理器301应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器304可以包括接收机和发射机,收发器304应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器301可以是cpu(centralprocessingunit,中央处理器),通用处理器,dsp(digitalsignalprocessor,数据信号处理器),asic(apklicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
处理器301也可以包括一个或多个处理单元,例如:处理器301可以包括应用处理器(apklicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,存储器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备300的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器301中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器301中的存储器为高速缓冲存储器。该存储器可以保存处理器301刚用过或循环使用的指令或数据。如果处理器301需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器301的等待时间,因而提高了系统的效率。
处理器301可以运行本申请实施例提供的安全支付方法,以便于降低用户的操作复杂度、提高终端设备的智能化程度,提升用户的体验。处理器301可以包括不同的器件,比如集成cpu和gpu时,cpu和gpu可以配合执行本申请实施例提供的安全支付方法,比如安全支付方法中部分算法由cpu执行,另一部分算法由gpu执行,以得到较快的处理效率。
总线302可包括一通路,在上述组件之间传送信息。总线302可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器303可以是rom(readonlymemory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscreadonlymemory,只读光盘),也可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,ufs),或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器303用于存储执行本申请方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现本申请任一实施方式中所提供的安全支付方法。
存储器303可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器301通过运行存储在存储器303的指令,从而执行电子设备300的各种功能应用以及数据处理。存储器303可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序的代码等。存储数据区可存储电子设备300使用过程中所创建的数据(比如相机应用采集的图像、视频等)等。
存储器303还可以存储本申请实施例提供的安全支付方法对应的一个或多个计算机程序。该一个或多个计算机程序被存储在上述存储器303中并被配置为被该一个或多个处理器301执行,该一个或多个计算机程序包括指令,上述指令可以用于执行上述相应实施例中的各个步骤。
当然,本申请实施例提供的安全支付方法的代码还可以存储在外部存储器中。这种情况下,处理器301可以通过外部存储器接口运行存储在外部存储器中的安全支付方法的代码,处理器301可以控制运行安全支付流程。
显示屏305包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,电子设备300可以包括1个或n个显示屏305,n为大于1的正整数。显示屏305可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphicaluserinterface,gui)。例如,显示屏305可以显示照片、视频、网页、或者文件等。
本申请实施例提供的电子设备,适用于上述方法任一实施例,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的安全支付方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的方法。本申请实施例提供的计算机程序产品,适用于上述方法任一实施例,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请实施例提供的安全支付方案,包括第三方apk接收到用户请求调用支付apk时,支付apk判断所述第三方apk程序是否为安全管理平台授权认证的合法程序;如果是,则智能终端执行所述调用请求调用支付apk;所述支付apk根据所述第三方apk发送的支付请求完成支付。本申请实施例提供的安全支付方案通过在被支付应用的管理机构授权认证的应用程序的开发过程中将程序中的核心文件部分按照安全管理平台的规则进行处理已达到具有安全管理平台授权标识的目的,这样在对第三方应用授权验证过程中就实现了对第三方应用程序中核心文件的授权验证,而非像现有技术中那样仅仅是对第三方应用程序包名称的授权验证,同时本申请实施例为了进一步提高第三方应用调用支付应用的安全性,还通过支付应用对第三方应用的授权码的验证后才启动调用程序。本申请实施例提供的技术方案对具体应用程序文件进行授权,使用时会先校验应用程序的合法性,只有通过支付应用的服务器(或支付应用的管理企业)的授权验证才能对支付应用进行调用,相较现有技术仅校验对程序包名的授权,避免了重新打包或被篡改的应用名的无授权程序对支付系统的调用,而且授权码由支付应用服务器提供的数据与本地数据及时间戳混合生成,随机变动,加密传输返回,难以模仿,提高了交易的安全性。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其他的方式实现。例如,以上所描述的系统实施例仅是示意性的,例如,模块或单元的划分,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以丢弃,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,还可以做出若干改进和润饰,这些变化、替换、改进和润饰也应视为都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
1.一种安全支付方法,其特征在于,所述方法应用于安全支付系统,所述系统包括智能终端和支付apk的安全管理平台,其中所述智能终端进一步包括第三方apk和支付apk,所述方法包括:
第三方apk接收到用户请求调用支付apk时,支付apk判断所述第三方apk程序是否为安全管理平台授权认证的合法程序;
如果是,则智能终端执行所述调用请求调用支付apk;
所述支付apk根据所述第三方apk发送的支付请求完成支付。
2.根据权利要求1所述的安全支付方法,其特征在于,支付apk判断所述第三方apk程序是否为授权认证的合法程序包括:
判断所述第三方apk中是否包括目标模块;其中所述目标模块包括具有所述支付apk安全管理平台授权标识的第三方apk的核心程序文件。
3.根据权利要求2所述的安全支付方法,其特征在于,所述具有所述支付apk安全管理平台授权标识的目标模块进一步包括:
按照所述支付apk安全管理平台的预设加密规则加密生成的第三方apk核心程序文件。
4.根据权利要求3所述的安全支付方法,其特征在于,所述按照预设加密规则处理的目标模板的生成包括:
所述安全管理平台对所述第三方apk的核心程序文件进行md5算法处理;
所述安全管理平台利用第一密钥对第三方apk签名和随机加密因子进行md5算法加密处理;其中,所述第一密钥由安全管理平台生成;
将所述处理后的核心程序文件和第三方apk签名组成目标模块压缩进所述第三apk目录中。
5.根据权利要求4所述的安全支付方法,其特征在于,所述判断所述第三方apk程序为安全管理平台授权认证的合法程序包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得所述核心程序文件的md5值和第三方apk签名的md5值;
智能终端计算核心程序文件的md5值和第三方apk签名的md5值;
当解密获取的核心程序文件的md5值和第三方apk签名的md5值分别与计算的值相同时,确定所述第三方apk为授权认证的合法程序。
6.根据权利要求5所述的安全支付方法,其特征在于,所述sdk文件的生成进一步包括:
所述安全管理平台在标识第三方apk的目标模块时,将所述sdk文件集成在所述第三方apk程序文件中;所述sdk文件用于为所述第三方apk提供调用接口。
7.根据权利要求6所述的安全支付方法,其特征在于,所述执行所述调用请求调用支付apk之前,所述方法还包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得安全管理平台的随机加密因子;
第三方apk将安全管理平台的随机加密因子、第三方apk生成的加密因子和当前时间戳生成字符串;
第三方apk根据预设的处理规则将所述字符串生成授权码,并将所述授权码发送至支付apk进行校验;
当所述支付apk对所述授权码校验成功后,智能终端执行调用请求调用支付apk。
8.根据权利要求7所述的安全支付方案,其特征在于,所述第三方apk将所述字符串生成授权码的预设处理规则包括:
第三方apk利用3des算法对所述生成的字符串进行加密处理;
第三方apk通过base64对所述字符串进行转码生成授权码。
9.根据权利要求8所述的安全支付方案,其特征在于,所述支付apk校验所述授权码的过程包括:
所述支付apk接收到第三方apk通过其sdk文件中的接口发送的调用请求时,所述支付apk通过所述接口按照预设处理规则对所述授权码进行逆向处理,处理成功则校验通过。
10.一种安全支付系统,其特征在于,所述系统包括智能终端和支付apk的安全管理平台,所述智能终端进一步包括第三方apk和支付apk,其中:
第三方apk接收到用户请求调用支付apk时,支付apk判断所述第三方apk程序是否为安全管理平台授权认证的合法程序;
如果是,则智能终端执行所述调用请求调用支付apk;
所述支付apk根据所述第三方apk发送的支付请求完成支付。
11.根据权利要求10所述的安全支付系统,其特征在于,支付apk判断所述第三方apk程序是否为授权认证的合法程序包括:
判断所述第三方apk中是否包括目标模块;其中所述目标模块包括具有所述支付apk安全管理平台授权标识的第三方apk的核心程序文件;所述具有授权标识的目标模块进一步包括按照所述支付apk安全管理平台的预设加密规则加密生成的第三方apk核心程序文件。
12.根据权利要求11所述的安全支付系统,其特征在于,所述按照预设加密规则处理的目标模板的生成包括:
所述安全管理平台对所述第三方apk的核心程序文件进行md5算法处理;
所述安全管理平台利用第一密钥对第三方apk签名和随机加密因子进行md5算法加密处理;其中,所述第一密钥由安全管理平台生成;
将所述处理后的核心程序文件和第三方apk签名组成目标模块压缩进所述第三apk目录中。
13.根据权利要求12所述的安全支付系统,其特征在于,所述判断所述第三方apk程序为安全管理平台授权认证的合法程序包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得所述核心程序文件的md5值和第三方apk签名的md5值;
智能终端计算核心程序文件的md5值和第三方apk签名的md5值;
当解密获取的核心程序文件的md5值和第三方apk签名的md5值分别与计算的值相同时,确定所述第三方apk为授权认证的合法程序。
14.根据权利要求13所述的安全支付系统,其特征在于,所述执行所述调用请求调用支付apk之前,所述系统还包括:
第三方apk通过其程序包中的sdk文件中的接口读取并解密所述目标模块,获得安全管理平台的随机加密因子;
第三方apk将安全管理平台的随机加密因子、第三方apk生成的加密因子和当前时间戳生成字符串;
第三方apk根据预设的处理规则将所述字符串生成授权码,并将所述授权码发送至支付apk进行校验;其中,预设处理规则包括:第三方apk利用3des算法对所述生成的字符串进行加密处理后通过base64对所述字符串进行转码生成授权码;
当所述支付apk对所述授权码校验成功后,智能终端执行调用请求调用支付apk。
15.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-9中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9中任一项所述的方法。
技术总结