一种在线快捷支付系统及其支付方法_2

文档序号:9350545阅读:来源:国知局
息进行关联之后再对所述预设算法进行存储,随后发送至所述客户端。
[0043]优选地,在步骤S13中,所述服务器在所述第二时间的预设时间窗口内生成第二动态口令集,所述服务器在所述第二动态口令集中查找与第一动态口令相同的口令,完成动态口令的认证,实现所述密码信息的认证。
[0044]在本技术方案中,由于服务器中发送信息至客户端中存在一定的时差,这样有可能服务器当前时间生成的动态口令与客户端中发送的动态口令不同,设置一定的时间窗口,有效地保障了认证速度。
[0045]优选地,所述预设时间窗口为2min (分钟)。
[0046]本发明能带来以有益效果是:
[0047]1.在本发明中,由于标识用户的用户信息是唯一的,因而在注册的过程中根据用户信息生成的随机数也是唯一的,生成的预设算法也就具有唯一性和不可预见性,这样每个用户都有自己对应的算法,保障了用户使用过程中的安全性能;
[0048]2.在本发明中,在快捷支付的过程中,不再需要输入银行卡号,只需要输入支付密码即可完成信息的认证,不仅避免了银行卡号信息的泄露,保证了银行卡的安全,同时也加快了快捷支付过程信息认证的过程,缩短了认证的时间。
【附图说明】
[0049]下面结合附图和【具体实施方式】对本发明作进一步详细说明:
[0050]图1为本发明中快捷支付系统的结构示意图;
[0051]图2为本发明中快捷支付系统中服务器中预存多个预设算法时的结构示意图;
[0052]图3为本发明中快捷支付方法流程示意图;
[0053]图4为本发明中用户进行快捷支付之前在服务器中进行注册的流程示意图。
【具体实施方式】
[0054]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]如图1所示为本发明提供的快捷支付系统,简单来说,在支付系统中包括了客户端和服务器,在使用本发明提供的快捷支付系统进行快捷支付之前,需要分别在客户端和服务器中预存与该用户唯一对应的预设算法,再分别生成动态口令,最后通过比对动态口令,实现信息的认证。在这个过程中,首先要注意的是,这里的预设算法可以以安全支付插件的形式存在,即在快捷支付之前,客户端中除了安装银行的APP(AppliCat1n,应用程序),申请开通该银行的快捷支付功能,同时下载预设算法的插件,这样,在进行支付的过程中,当用户选择该银行进行支付时,将自动切换到该银行的APP支付界面中,仅输入支付密码即可完成支付,这样大大加快了快捷支付的时间,同时简化了整个快捷支付的过程。具体来说,在本发明中,这里说到的客户端包括但不限于手机、笔记本电脑等。
[0056]从上述可以看出,为了在客户端和服务器中分别存储有相同的预设算法,客户端在进行快捷支付之前,需要将用户信息发送至服务器中进行注册,以下我们对注册的过程进行具体的描述:客户端中获取能够用于唯一标识用户的用户信息,随后将该用户信息发送至服务器中,服务器中接收到该该用户信息之后,随即根据该用户信息使用一随机数生成器生成一随机数(如,采用8进制数进行表示);随机数生成之后随即通过一预设重构机制对内置在服务器中的算法进行重构生成预设算法。要说明的是,在本发明中,我们对服务器中内置的算法不作具体限定,其可以是SM3、SM4算法,甚至可以是椭圆算法等简单的算法,用户可以自主选择;且该算法除了可以预先存储在服务器中,也可以通过网络等形式下载该算法,这样每个用户可以根据实际情况进行选择,即使每个用户选择的重构前的算法是一样的,经过本发明提供的重构机制得到的预设算法也是不一样的,大大提高了认证过程中的安全性能。
[0057]具体来说,在根据第二随机数对算法进行重构生成预设算法的过程中至少包括以下一个步骤:
[0058]根据随机数,确定预设算法的运算顺序;
[0059]根据随机数,确定预设算法的分组数据块的结构以及分组数据块的运算顺序;
[0060]根据随机数,确定预设算法中的固定参数。
[0061]可以看出,在本发明中,可以通过以上三种方式对算法进行重构,得到预设算法。具体来说,假设生成的随机数为8个字节,其中,第一位代表运算顺序,第二位代表分组数据块,第三位代表固定参数,将其带入预设重构机制对算法进行重构。
[0062]以通过改变运算顺序对算法进行重构来说:假定算法的一般运算顺序依次包括W0,W1,W2,W3四个主步骤,且每个步骤中分别包括相应的子步骤,如Wl中包括to,tl, t2, t3, t4五个子步骤,在本发明中,即可以通过随机数中的某一位代表运算顺序,以改变该上述内置算法的运算顺序,从而生成新的算法,具体地,如果随机数为01234567,其中,第一位代表运算顺序,若此时第一位代表Wl中的子步骤的运算顺序,则表示to为五个子步骤中的第一个运算步骤,同理,若第一位代表主步骤的运算顺序,则表示Wl为则说明在主步骤Wl为第一运算步骤;如果随机数为21304567,且第一位代表运算顺序,若此时第一位代表主步骤的运算顺序,则表示步骤W2为主步骤中的第一运算步骤,同理,若此时第一位代表Wl中子步骤的运算顺序,则表示步骤t2为五个子步骤中的第一个运算步骤。特别地,在本发明中,随机数采用八进制数表示,假若此时随机数中代表运算顺序的位数大于算法运算过程中的步骤数量,如,随机数为76543210,第一位7代表运算顺序,而此时算法的主步骤只有W1,W2,W3,W4四个步骤,算法在运行的过程中,找不到步骤W7作为第一运算步骤,则此时自动跳过,直接按照原顺序进行运行。在本发明中,对上述的内置算法及随机数对算法运算顺序的改变都不作限定,只要运算顺序改变后算法的作用不变,能达到最初的目的,都包括在本发明的内容中。
[0063]进一步地,以通过改变分组数据块的结构和运算顺序重构算法来说:其中,改变分组数据块的结构包括分组数据块的数量也包括数据块内部的结构的变化。例如:可以根据随机数中某一位字节代表分组模块的内部结构的改变,另一位代表重新分组过后的分组模块的运算顺序带入算法的运算从而生成新的算法。以SM3杂凑算法为例,SM3的一般运算顺序依次是:填充、分组、迭代、压缩,假若用户信息m的长度为24bit,则算法在运算的过程中首先对信息进行填充,填充后的数据m’的长度为512bit的整数倍,随后对填充后的数据按照512bit进行分组,即分组后的每组数据为512bit,m’ =1}。具体地,在本发明中,假若分组后的数据块Bw = [m0, ml, m2, m3…m7],随机数为01234567,且第一位代表分组数据块的运算顺序,第二代表分组数据块的结构,则此时在运算过程中数据组ml与m0的位置进行对换以此改变数据块的结构,O表示第一个数据块在第一步进行运算;类似地,若第二随机数为24653107,则在运算过程中m4与m0的位置进行对换来改变数据块的结构,2表示在第三步进行运算。当然,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1