网络应用中的密码验证方法及系统的制作方法

文档序号:6433349阅读:238来源:国知局
专利名称:网络应用中的密码验证方法及系统的制作方法
网络应用中的密码验证方法及系统
技术领域
本发明涉及信息安全领域,特别是涉及一种网络应用中的密码验证方法及系统。背景技术
随着计算机网络应用的发展,网络游戏、虚拟社区以及网上交易等网络应用越来越多,同时,这些网络应用的安全性问题也日益突出。在大多网络应用中,用户通过客户端使用服务端提供的应用程序,服务端通常要求用户输入相应的密码和帐号信息,并经过验证后方可进入相应的应用程序中,以防止非法用户的进入。但是由于网络环境的复杂性,常常出现用户密码被破解的现象使网络应用的安全性大大降低。用户在客户端输入密码及帐号等输入信息时,客户端会将输入信息进行加密后上报给服务端,服务端对接收到的输入信息进行解密和验证,但是往往就在客户端将输入信息传递至服务端的过程中为恶意软件截获用户的输入信息提供了便利,进而使得加密的密码被暴力破解。

发明内容基于此,有必要提供一种能提高安全性的网络应用中的密码验证方法。此外,还有必要提供一种能提高安全性的网络应用中的密码验证系统。一种网络应用中的密码验证方法,包括如下步骤根据触发的登录事件获取随机字符串;获取用户输入的密码及用户标识;将所述用户输入的密码与所述随机字符串形成验证信息;对所述验证信息进行加密计算,并将所述用户标识和加密后的验证信息传输至服务端;所述服务端对所述用户标识和加密后的验证信息进行验证。优选地,所述将所述用户输入的密码与所述随机字符串形成验证信息的步骤之前还包括从用户输入的密码中提取预设长度的字符串;所述将所述用户输入的密码与所述随机字符串形成验证信息的步骤为将所述提取的字符串与所述随机字符串形成验证信息。优选地,所述从用户输入的密码中提取预设长度的字符串的步骤为根据所述密码中的字符建立对应的首尾相接的链表,密码中的首字符与所述链表中的开始结点相对应;获取密码的位数作为提取次数;按照所述提取次数在所述链表中逐次提取预设长度的连续字符,得到与每一次字符提取相对应的字符串。
优选地,所述将所述提取的字符串与所述随机字符串形成验证信息的步骤为将与每一次字符提取相对应的字符串分别与所述随机字符串形成对应的验证信息;所述服务端对所述用户标识和加密后的验证信息进行验证的步骤为从所述服务端中获取与所述用户标识相对应的验证码;将所述验证信息与所述验证码逐一进行比对验证。优选地,所述预设长度为所述密码的位数与2的差值,所述将所述验证信息与所述预存储的验证码逐一进行比对验证的步骤为判断是否有至少两个验证信息与所述验证码匹配,若是,则验证通过。一种网络应用中的密码验证系统,包括客户端以及与所述客户端进行交互的服务端;所述客户端包括字符串获取模块,用于根据触发的登录事件获取随机字符串;输入获取模块,用于获取用户输入的密码及用户标识;信息形成模块,用于将所述用户输入的密码与所述随机字符串形成验证信息;处理模块,用于对所述验证信息进行加密计算,并将所述用户标识和加密后的验证信息传输至所述服务端;所述服务端用于对所述用户标识和加密后的验证信息进行验证。优选地,所述客户端还包括提取模块,用于从用户输入的密码中提取预设长度的字符串;所述信息形成模块还用于将所述提取的字符串与所述随机字符串形成验证信息。优选地,所述提取模块包括链表建立单元,用于根据所述密码中的字符建立对应的首尾相接的链表,密码中的首字符与所述链表中的开始结点相对应;获取单元,用于获取密码的位数作为提取次数;字符提取单元,用于按照所述提取次数在所述链表中逐次提取预设长度的连续字符,得到与每一次字符提取相对应的字符串。优选地,所述信息形成模块还用于将与每一次字符提取相对应的字符串分别与所述随机字符串形成对应的验证信息;所述服务端包括验证码获取单元,用于获取与所述用户标识相对应的验证码;比对验证单元,用于将所述验证信息与所述验证码逐一进行比对验证。优选地,所述预设长度为所述密码的位数与2的差值,所述比对验证单元还用于判断是否有至少两个验证信息与所述验证匹配,若是,则验证通过。上述密码验证方法及系统中,将用户输入的密码与获取到的随机字符串形成验证信息,并对验证信息加密后传输到服务端中,提高了密码验证过程中的安全性,避免了传输过程中被恶意软件截获的情况发生,并且由于验证信息中附加了随机字符串,且进行了加密计算,因此,验证信息被暴力破解的可能性大大降低。上述密码验证方法及系统中,对用户输入的密码进行多次提取得到多个字符串,并分别与随机字符串形成多个验证信息,服务端对多个验证信息进行验证,提取了密码验证过程中的安全性。

图1为一个实施例中网络应用中的密码验证方法的流程图;图2为图1中从用户输入的密码中提取预设长度的字符串的方法流程图;图3为一个实施例中链表的示意图;图4为图1中将提取的字符串与随机字符串形成验证信息的方法流程图;图5为一个实施例中网络应用的密码验证系统的结构示意图;图6为图5中客户端的结构示意图;图7为图6中提取模块的结构示意图;图8为图5中服务器的结构示意图。
具体实施方式图1示出了一个实施例中网络应用中的密码验证方法,包括如下步骤步骤S110,根据触发的登录事件获取随机字符串。本实施例中,用户在网络应用的交互界面中输入用户标识以及对应的密码,并点击“登录”按钮,触发了登录事件。此时,根据这一触发的登录事件获取随机字符串。随机字符串是通过随机函数等方式随机生成的,用户每一次登录所获取的随机字符串均是各不相同的。步骤S130,获取用户输入的密码及用户标识。步骤S150,将用户输入的密码与随机字符串形成验证信息。本实施例中,密码的位数越多,则该密码的安全性可能也就越高,但是,为方便用户记忆和使用,并不是所有的用户均会设置位数非常多的密码来保证自身网络用户的安全使用,因此,为了解决这一问题,在用户输入的密码中附加随机字符串,随机字符串对于每一次登录均是不同的,且由用户输入的密码和随机字符形成的验证信息相对于用户输入的密码,其长度大大增加,有效地加强了密码的安全性。步骤S170,对验证信息进行加密计算,并将用户标识和加密后的验证信息传输至服务端。本实施例中,在用户对网络应用的登录过程中,为了使得验证信息在传输的过程中即使被恶意截获所看到的验证信息并不是用户真实的验证信息,对用户输入的密码与随机字符串所形成的一长串字符进行加密计算,对应的加密算法可以是MD5算法,Hash算法以及CRC算法等,优选为MD5算法。步骤S190,服务端对用户标识和加密后的验证信息进行验证。本实施例中,服务端在接收到传输的用户标识和加密后的验证信息后直接对其进行验证,以判断该用户的有效性。具体地,在服务端随机生成随机字符串之后发送生成的随机字符串并记录该随机字符串,服务端中记录了网络应用中拥有的每一用户标识、对应的密码以及触发登录事件时生成的随机字符串。在用户对网络应用的登录过程中,服务端也将记录的密码以及随机字符附加在一起进行加密计算,得到验证码,该验证码用于与接收到的验证信息进行比对, 若一致,则验证通过,用户顺利运行服务端中的网络应用。在另一个实施例中,上述步骤S150之前还包括了从用户输入的密码中提取预设长度的字符串。本实施例中,为了进一步提高用户登录过程中的安全性,在用户输入的密码中,对组成密码的字符进行提取操作得到预设长度的字符串,具体地,对密码中的字符所进行的提取操作可以是连续提取一定长度的字符串组合在一起,也可以对密码中的字符进行循环提取,得到多个长度相同的字符串。为使密码达到更高的安全性需要对密码中的字符进行循环提取。在优选的实施例中,循环提取的过程为按照设定的字符长度,按照密码中字符的排列顺序多次提取满足设定的字符长度的连续字符,每一次提取得到的字符串均各不相同,提取次数与密码的位数是相同的。例如,若一个用户输入的密码为12位,由12个字符组成,设定的字符长度为10, 则首先以第一位字符为起始提取连续的10位字符作为第一次提取得到的字符串;然后以第二位字符为起始提取连续的10位字符作为第二次提取得到的字符串;提取第三位至第十二位字符作为第三次提取得到的字符串;提取第四位至第十二位以及第一位的10位连续字符作为第四次提取得到的字符串;以此类推,从密码的字符中提取第η位到第n-3位的连续字符,其中,124。通过上述提取操作得到了 12个长度相同的字符串。上述步骤S150的具体过程为将提取的字符串与随机字符串形成验证信息。本实施例中,将提取的字符串与随机字符串附加在一起形成验证信息,若提取的字符串为一个,则可将随机字符串附加于提取的字符串的尾部形成验证信息;若提取的字符串为多个,则可将随机字符串分别附加于多个提取的字符串的尾部形成多个验证信息。在一个具体的实施例中,如图2所示,上述从用户输入的密码中提取预设长度的字符串的步骤为步骤S201,根据密码中的字符建立对应的首尾相接的链表,密码中的首字符与链表中的开始结点相对应。本实施例中,为方便对密码中的字符进行循环提取,提高字符提取的效率,在优选的实施例中,将密码中的字符以链表的形式存储,建立首尾相接的链表,该链表优选为循环单链表。如图3所示,密码中的字符构成了链表中的结点,每一字符都对应了链表中的一个结点,最后一个结点的指针将指向链表中的第一个结点,所有结点形成了环状。步骤S203,获取密码的位数作为提取次数。本实施例中,将用户输入的密码位数作为提取次数。步骤S205,按照提取次数在链表中逐次提取预设长度的连续字符,得到与每一次字符提取相对应的字符串。本实施例中,为使提取操作较为方便地实现,可在链表中设置头指针或者尾指针, 在环状的链表中,若链表中设置了头指针,则以链表的第一个结点为起始进行多次连续字符的提取,若链表中设置了尾指针,则以链表中的最后一个结点为起始进行多次连续字符的提取,进而得到多个字符串。在另一个具体的实施例中,如图4所示,上述将提取的字符串与随机字符串形成验证信息的步骤为
步骤S401,从服务端中获取与用户标识相对应的验证码。本实施例中,根据用户标识,对服务端中存储的信息进行查找得到与用户标识相对应的验证码,其中,验证码的形式是与验证信息相对应的,若验证信息是提取到的字符串和随机字符串通过MD5计算得到的MD5值,则验证码是对存储的该用户标识所对应的密码进行了提取之后得到的字符串和随机字符串进行MD5计算后得到的。步骤S403,将验证信息与所述验证码逐一进行比对验证。本实施例中,将验证信息与服务端中的验证码进行比对,若 验证信息与验证码是相一致的,则验证通过。对于多个验证信息,也需要进行逐一比对。具体地,预设长度为密码与2的差值,上述将验证信息与验证码逐一进行比对验证的具体过程为判断是否有至少两个验证信息与验证码匹配,若是,则验证通过,若否,则结束。服务端所生成的验证码是与验证信息相对应的,因此,若验证信息为多个,则服务端也按照生成验证信息的方式生成多个验证码。将接收到的多个验证信息与服务端存储的多个验证信息进行逐一比对,若存在至少两个验证信息与服务端中的验证码相匹配,则验证通过,实现了在保证密码安全性的同时使密码具备容错能力,即若用户在输入密码时发生了误操作,导致输入的密码中某一个字符是错误的,此时对应的多个验证信息中只会有两个验证信息与服务端中的验证码相一致。图5示出了一个实施例中网络应用中的密码验证系统,包括客户端10以及与客户端10进行交互的服务端30。客户端10包括字符串获取模块110、输入获取模块130、信息形成模块150以及处理模块170。字符串获取模块110,用于根据触发的登录事件获取随机字符串。本实施例中,用户在网络应用的交互界面中输入用户标识以及对应的密码,并点击“登录”按钮,触发了登录事件。此时,字符串获取模块110根据这一触发的登录事件获取随机字符串。随机字符串是通过随机函数等方式随机生成的,用户每一次登录所获取的随机字符串均是各不相同的。输入获取模块130,用于获取用户输入的密码及用户标识。信息形成模块150,用于将用户输入的密码与随机字符串形成验证信息。本实施例中,密码的位数越多,则该密码的安全性可能也就越高,但是,为方便用户记忆和使用,并不是所有的用户均会设置位数非常多的密码来保证自身网络用户的安全使用,因此,为了解决这一问题,信息形成模块150在用户输入的密码中附加随机字符串, 随机字符串对于每一次登录均是不同的,且由用户输入的密码和随机字符形成的验证信息相对于用户输入的密码,其长度大大增加,有效地加强了密码的安全性。处理模块170,用于对验证信息进行加密计算,并将用户标识和加密后的验证信息传输至服务端。本实施例中,在用户对网络应用的登录过程中,为了使得验证信息在传输的过程中即使被恶意截获所看到的验证信息并不是用户真实的验证信息,处理模块170对用户输入的密码与随机字符串所形成的一长串字符进行加密计算,对应的加密算法可以是MD5算法,Hash算法以及CRC算法等,优选为MD5算法。
服务端30,用于对用户标识和加密后的验证信息进行验证。本实施例中,服务端30在接收到传输的用户标识和加密后的验证信息后直接对其进行验证,以判断该用户的有效性。具体地,在服务端30随机生成随机字符串之后发送生成的随机字符串并记录该随机字符串,服务端30中记录了网络应用中拥有的每一用户标识、对应的密码以及触发登录事件时生成的随机字符串。在用户对网络应用的登录过程中,服务端30也将记录的密码以及随机字符附加在一起进行加密计算,得到验证码,该验证码用于与接收到的验证信息进行比对,若一致,则验证通过,用户顺利运行服务端中的网络应用。在另一个实施例中,如图6所示,客户端10还包括提取模块190,用于从用户输入的密码中提取预设长度的字符串。本实施例中,为了进一步提高用户登录过程中的安全性,在用户输入的密码中,提取模块190对组成密码的字符进行提取操作得到预设长度的字符串,具体地,提取模块190 对密码中的字符所进行的提取操作可以是连续提取一定长度的字符串组合在一起,也可以对密码中的字符进行循环提取,得到多个长度相同的字符串。为使密码达到更高的安全性需要对密码中的字符进行循环提取。在优选的实施例中,提取模块190按照设定的字符长度,按照密码中字符的排列顺序多次提取满足设定的字符长度的连续字符,每一次提取得到的字符串均各不相同,提取次数与密码的位数是相同的。信息形成模块150还用于将提取的字符串与随机字符串形成验证信息。本实施例中,信息形成模块150将提取的字符串与随机字符串附加在一起形成验证信息,若提取的字符串为一个,则信息形成模块150可将随机字符串附加于提取的字符串的尾部形成验证信息;若提取的字符串为多个,则信息形成模块150可将随机字符串分别附加于多个提取的字符串的尾部形成多个验证信息。在一个具体的实施例中,如图7所示,提取模块190包括链表建立单元191、获取单元193以及字符提取单元195。链表建立单元191,用于根据密码中的字符建立对应的首尾相接的链表,密码中的首字符与链表中的开始结点相对应。本实施例中,为方便对密码中的字符进行循环提取,提高字符提取的效率,在优选的实施例中,链表建立单元191将密码中的字符以链表的形式存储,建立首尾相接的链表, 该链表优选为循环单链表。密码中的字符构成了链表中的结点,每一字符都对应了链表中的一个结点,最后一个结点的指针将指向链表中的第一个结点,所有结点形成了环状。获取单元193,用于获取密码的位数作为提取次数。本实施例中,获取单元193将用户输入的密码位数作为提取次数。字符提取单元195,用于按照提取次数在链表中逐次提取预设长度的连续字符,得到与每一次字符提取相对应的字符串。本实施例中,为使提取操作较为方便地实现,可在链表中设置头指针或者尾指针, 在环状的链表中,若链表中设置了头指针,则字符提取单元195以链表的第一个结点为起始进行多次连续字符的提取,若链表中设置了尾指针,则字符提取单元195以链表中的最后一个结点为起始进行多次连续字符的提取,进而得到多个字符串。
在另一个具体的实施例中,信息形成模块150还用于将与每一次字符提取相对应的字符串分别与随机字符串形成对应的验证信息。如图8所示,服务器30包括验证码获取单元301以及比对验证单元303。 验证码获取单元301,用于获取与用户标识相对应的验证码。本实施例中,验证码获取单元301根据用户标识,对服务端中存储的信息进行查找得到与用户标识相对应的验证码,其中,验证码的形式是与验证信息相对应的,若验证信息是提取到的字符串和随机字符串通过MD5计算得到的MD5值,则验证码是对存储的该用户标识所对应的密码进行了提取之后得到的字符串和随机字符串进行MD5计算后得到的。比对验证单元303,用于将验证信息与验证码逐一进行比对验证。本实施例中,比对验证单元303将验证信息与服务端中的验证码进行比对,若验证信息与验证码是相一致的,则验证通过。对于多个验证信息,也需要进行逐一比对。具体地,预设长度为密码的位数与2的差值,比对验证单元303还用于判断是否有至少两个验证信息与验证匹配,若是,则验证通过,若否,则结束。服务端30所生成的验证码是与验证信息相对应的,因此,若验证信息为多个,则服务端30也按照生成验证信息的方式生成多个验证码。将接收到的多个验证信息与服务端30存储的多个验证信息进行逐一比对,若存在至少两个验证信息与服务端30中的验证码相匹配,则验证通过,实现了在保证密码安全性的同时使密码具备容错能力,即若用户在输入密码时发生了误操作,导致输入的密码中某一个字符是错误的,此时对应的多个验证信息中只会有两个验证信息与服务端30中的验证码相一致。上述密码验证方法及系统中,将用户输入的密码与获取到的随机字符串形成验证信息,并对验证信息加密后传输到服务端中,提高了密码验证过程中的安全性,避免了传输过程中被恶意软件截获的情况发生,并且由于验证信息中附加了随机字符串,且进行了加密计算,因此,验证信息被暴力破解的可能性大大降低。上述密码验证方法及系统中,对用户输入的密码进行多次提取得到多个字符串, 并分别与随机字符串形成多个验证信息,服务端对多个验证信息进行验证,提取了密码验证过程中的安全性。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种网络应用中的密码验证方法,包括如下步骤 根据触发的登录事件获取随机字符串;获取用户输入的密码及用户标识;将所述用户输入的密码与所述随机字符串形成验证信息;对所述验证信息进行加密计算,并将所述用户标识和加密后的验证信息传输至服务端;所述服务端对所述用户标识和加密后的验证信息进行验证。
2.根据权利要求1所述的网络应用中的密码验证方法,其特征在于,所述将所述用户输入的密码与所述随机字符串形成验证信息的步骤之前还包括从用户输入的密码中提取预设长度的字符串;所述将所述用户输入的密码与所述随机字符串形成验证信息的步骤为 将所述提取的字符串与所述随机字符串形成验证信息。
3.根据权利要求2所述的网络应用中的密码验证方法,其特征在于,所述从用户输入的密码中提取预设长度的字符串的步骤为根据所述密码中的字符建立对应的首尾相接的链表,密码中的首字符与所述链表中的开始结点相对应;获取密码的位数作为提取次数;按照所述提取次数在所述链表中逐次提取预设长度的连续字符,得到与每一次字符提取相对应的字符串。
4.根据权利要求3所述的网络应用中的密码验证方法,其特征在于,所述将所述提取的字符串与所述随机字符串形成验证信息的步骤为将与每一次字符提取相对应的字符串分别与所述随机字符串形成对应的验证信息; 所述服务端对所述用户标识和加密后的验证信息进行验证的步骤为 从所述服务端中获取与所述用户标识相对应的验证码; 将所述验证信息与所述验证码逐一进行比对验证。
5.根据权利要求4所述的网络应用中的密码验证方法,其特征在于,所述预设长度为所述密码的位数与2的差值,所述将所述验证信息与所述预存储的验证码逐一进行比对验证的步骤为判断是否有至少两个验证信息与所述验证码匹配,若是,则验证通过。
6.一种网络应用中的密码验证系统,其特征在于,包括客户端以及与所述客户端进行交互的服务端;所述客户端包括字符串获取模块,用于根据触发的登录事件获取随机字符串; 输入获取模块,用于获取用户输入的密码及用户标识; 信息形成模块,用于将所述用户输入的密码与所述随机字符串形成验证信息; 处理模块,用于对所述验证信息进行加密计算,并将所述用户标识和加密后的验证信息传输至所述服务端;所述服务端用于对所述用户标识和加密后的验证信息进行验证。
7.根据权利要求6所述的网络应用中的密码验证系统,其特征在于,所述客户端还包括提取模块,用于从用户输入的密码中提取预设长度的字符串;所述信息形成模块还用于将所述提取的字符串与所述随机字符串形成验证信息。
8.根据权利要求7所述的网络应用中的密码验证系统,其特征在于,所述提取模块包括链表建立单元,用于根据所述密码中的字符建立对应的首尾相接的链表,密码中的首字符与所述链表中的开始结点相对应;获取单元,用于获取密码的位数作为提取次数;字符提取单元,用于按照所述提取次数在所述链表中逐次提取预设长度的连续字符, 得到与每一次字符提取相对应的字符串。
9.根据权利要求8所述的网络应用中的密码验证系统,其特征在于,所述信息形成模块还用于将与每一次字符提取相对应的字符串分别与所述随机字符串形成对应的验证信息;所述服务端包括验证码获取单元,用于获取与所述用户标识相对应的验证码; 比对验证单元,用于将所述验证信息与所述验证码逐一进行比对验证。
10.根据权利要求9所述的网络应用中的密码验证系统,其特征在于,所述预设长度为所述密码的位数与2的差值,所述比对验证单元还用于判断是否有至少两个验证信息与所述验证匹配,若是,则验证通过。
全文摘要
一种网络应用中的密码验证方法,包括如下步骤根据触发的登录事件获取随机字符串;获取用户输入的密码及用户标识;将所述用户输入的密码与所述随机字符串形成验证信息;对所述验证信息进行加密计算,并将所述用户标识和加密后的验证信息传输至服务端;所述服务端对所述用户标识和加密后的验证信息进行验证。上述密码验证方法及系统中,将用户输入的密码与获取到的随机字符串形成验证信息,并对验证信息加密后传输到服务端中,提高了密码验证过程中的安全性,避免了传输过程中被恶意软件截获的情况发生,并且由于验证信息中附加了随机字符串,且进行了加密计算,因此,验证信息被暴力破解的可能性大大降低。
文档编号G06F21/00GK102316112SQ201110276099
公开日2012年1月11日 申请日期2011年9月16日 优先权日2011年9月16日
发明者李建成 申请人:李建成
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1