[0035] 为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
[0036] 图1是本公开实施例提供的一种实施环境的示意图,如图1所示,该实施环境包括多个终端101和应用服务器102。每个终端101可以通过无线或者有线网络与应用服务器102连接,每个终端101可以为台式计算机、笔记本电脑、手机等,应用服务器102可以为是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,应用服务器102还可以具有至少一种数据库,例如密文信息数据库,注册用户信息数据库等,密文信息数据库用于加密存储终端101提供的用户密码,注册用户信息数据库用于存储终端101提供的用户信息。
[0037] 本实施例中,终端101与应用服务器102可以基于多种网络结构进行信息交互,网络结构可以包括浏览器/服务器(Browser/Server,B/S)结构、客户/服务器模式(Client/Server,C/S)等。其中,在B/S结构中,终端101可以安装浏览器,应用服务器102与浏览器关联,终端101可以通过浏览器与应用服务器102进行交互,实现应用的各种功能,在C/S结构中,终端101可以安装客户端,应用服务器102与客户端关联,例如为客户端的后台服务器,终端101可以通过客户端与应用服务器102进行交互,实现应用的各种功能。
[0038] 本公开实施例提供的登录认证方法可以适用于各种门户网站(Web Portal)进行登录认证的应用场景,在该场景中应用服务器可以为门户网站的服务器,可以对登录门户网站使用的加密算法进行在线自动升级。而终端可以通过浏览器显示门户网站的页面,在该门户网站的页面上触发登录请求,门户网站的应用服务器可以对登录请求进行登录认证,在登录认证过程中通过登录请求中的用户密码,对本地存储的密文信息进行更新。其中,门户网站可以为新闻网站、娱乐网站、社交网站、购物网站等。
[0039] 图2是本公开实施例提供的一种应用服务器的结构示意图,参见图2,该应用服务器包括:接收器201、发射器202、存储器203和处理器204,该接收器201、该发射器202和该存储器203分别与该处理器204连接,该存储器203存储有程序代码,该处理器204用于调用该程序代码,执行下述应用服务器所执行的操作。
[0040] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由应用服务器中的处理器执行以完成下述实施例中的登录认证方法。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0041] 相关技术中,应用服务器只能按照固定的加密算法进行登录认证,安全性较差。而本实施例中,应用服务器可以对加密算法进行一次或多次升级,通过动态的更新加密算法,能够极大地提高登录认证的安全性。进一步地,应用服务器可以在登录认证的过程中切换进行登录认证所采用的加密算法,直至切换至登录认证时采用的加密算法,从而避免由于登录认证与注册用户标识时使用加密算法计算的密文不一致导致登录认证失败的情况,步骤简单有效。进一步地,在加密存储和登录认证期间,应用服务器可以在用户无感知的情况下,在线升级加密算法,而无需中断业务,实现了在多种加密算法之间平滑切换的效果。
[0042] 本公开实施例提供了一种登录认证方法,该方法可以包括四部分,第一部分为对注册请求中的用户密码进行加密存储的过程,详见以下步骤301至步骤302,第二部分为对加密算法进行升级的过程,详见以下步骤303,第三部分为对首次登录的登录请求进行登录认证的过程,详见以下步骤304至步骤306,第四部分为对二次登录的登录请求进行登录认证的过程,详见以下步骤307。
[0043] 图3是本公开实施例提供的一种登录认证方法的流程图,如图3所示,该方法的交互主体包括终端和应用服务器,包括以下步骤:
[0044] 301、终端向应用服务器发送注册请求,注册请求携带用户标识和用户密码。
[0045] 以下以B/S结构的应用为例,对发送注册请求的具体过程进行示例性阐述:终端可以运行浏览器,获取在浏览器上输入的用户标识和用户密码,根据用户标识和用户密码生成注册请求,向应用服务器发送注册请求。其中,针对获取用户标识和用户密码的方式,终端可以在浏览器中显示注册页面,注册页面包括用户标识输入栏和用户密码输入栏,用户可以在用户标识输入栏上输入用户标识,在用户密码输入栏中输入的用户密码,终端可以检测用户的输入操作,得到在用户标识输入栏上输入的用户标识以及在用户密码输入栏输入的用户密码。
[0046] 302、当应用服务器接收到注册请求时,对注册请求携带的用户标识进行注册,并将注册请求携带的用户密码加密存储在密文信息中。
[0047] 当应用服务器接收到注册请求时,可以解析注册请求,得到用户标识和用户密码,对于用户标识,应用服务器会为用户提供注册功能,使得用户能够通过注册用户标识,从而应用服务器可以管理用户标识,允许该用户标识在登录认证成功后进行登录。而对于用户密码,为了保证安全性,应用服务器不会直接存储用户密码,而会采用加密算法,对用户密码进行计算,得到密文,在密文信息中存储用户标识以及对应的密文,从而实现对用户密码进行加密存储。其中,密文信息用于存储用户标识及对应的密文,应用服务器可以在配置文件或数据库中存储密文信息。
[0048] 加密存储所采用的加密算法可以由开发人员自定义设置,可以为应用服务器当前支持的多种加密算法中最安全的加密算法或最新的加密算法。当应用服务器的加密算法未发生升级时,加密存储采用的加密算法为升级前的加密算法,当应用服务器的加密算法发生升级时,加密存储的加密算法为升级后的加密算法。
[0049] 可选地,针对采用加密算法生成密文的具体过程,可以向加密算法输入哈希算法、用户密码、盐值、迭代次数、密文长度,得到加密算法输出的密文。其中,哈希算法可以根据实际需求确定,可以为SHA-256算法、SHA-512算法等。盐值是指用于对加密过程进行干扰的字符串,可以为128bit,应用服务器可以生成安全随机数,作为盐值,通过在生成密文时“加盐”,可以保证为相同的密码生成不同的密文,提高加密过程的安全性。迭代次数是指加密过程中重复计算的次数,为正整数,具体数值根据实际需求确定,可以为10000。密文长度是指期望加密算法计算后得到的密文的长度,可以根据实际需求确定,例如为256bits。
[0050] 示例性地,以加密算法为PBKDF2算法为例,可以采用以下计算公式生成密文:
[0051] cipherText1=PBKDF2(HashAlg,Password,Salt,Count,dkLen)。
[0052] 其中,cipherText1表示密文,HashAlg表示哈希算法,Password表示用户密码,Salt表示盐值,Count表示迭代次数,dkLen表示密文长度。
[0053] 需要说明的是,为了保证登录认证和加密存储时计算方式的一致性,可以要求加密存储使用的哈希算法、盐值、迭代次数、密文长度与后续登录认证时采用的哈希算法、盐值、迭代次数、密文长度保持对应一致,应用服务器可以设置哈希算法、迭代次数、密文长度固定,将加密存储时生成的盐值和用户标识对应存储于配置文件或数据库中,以便后续登录认证时从配置文件或数据库中读取盐值。
[0054] 303、应用服务器对加密算法进行升级。
[0055] 随着时间的推移,应用可以更新换代,推出新版本,应用服务器可以将已安装的旧版本的应用升级为新版本的应用,以便为用户提供新版本的应用的服务。本实施例中,应用服务器不仅可以升级安装的应用,还可以随着应用的升级对加密算法进行在线升级,或对加密算法进行单独在线升级,从而基于升级后的加密算法进行加密存储以及登录认证。为了区分描述,在此将升级后的加密算法称为第一加密算法,将升级前的加密算法称为第二加密算法。
[0056] 升级加密算法的具体过程可以根据代码文件的编写方式确定,具体可以包括以下两种设计。其中,代码文件为封装了上述加密存储的处理逻辑以及下述登录认证的处理逻辑的文件,服务器通过加载和运行代码文件可以执行加密存储和登录认证的过程。
[0057] 在一种可能的设计中,当代码文件固定设置了使用的加密算法,即加密算法写死在代码文件时,应用服务器要升级加密算法时,要获取新的代码文件,将旧的代码文件替换为新的代码文件。其中旧的代码文件是指封装了基于第二加密算法进行加密存储以及登录认证的代码文件,新的代码文件是指封装了基于第一加密算法进行加密存储以及结合第一加密算法以及第二加密算法进行登录认证的代码文件。
[0058] 在又一种可能的设计中,代码文件可以和可编辑的配置文件对应存储,代码文件中加密算法为全局变量,可以随配置文件中对加密算法的修改而修改。应用服务器要升级加密算法时,开发人员可以向配置文件中导入新的加密算法,并对配置文件进行适应性修改即可。
[0059] 需要说明的是,当对加密算法进行升级后,当应用新增了用户,即应用服务器再次接收到携带了用户标识的注册请求时,应用服务器即可采用第一加密算法,将注册请求携带的用户密码加密存储在密文信息中。
[0060] 304、终端向应用服务器发送登录请求,登录请求携带用户标识和用户密码。
[0061] 当终端已经注册了用户标识,需要使用应用服务器提供的服务时,可以向应用服务器发送登录请求,以便在登录认证通过时登录服务器,进而满足使用应用的服务的需求。其中,终端生成以及发送登录请求的具体过程与上述步骤301中生成以及发送注册请求的具体过程类似,在此不做赘述。
[0062] 305、当应用服务器接收到登录请求时,采用第一加密算法,对登录请求进行登录认证。
[0063] 由于上述步骤303中应用服务器的加密算法升级为第一加密算法,当接收到登录请求时,可以采用第一加密算法进行登录认证。
[0064] 登录认证的具体过程可以包括以下步骤一至步骤三。
[0065] 步骤一、应用服务器解析登录请求,得到用户标识和用户密码。
[0066] 步骤二、应用服务器从密文信息中获取用户标识对应的密文,得到第一密文。
[0067] 为了区分描述,本实施例以密文信息中用户标识对应的密文称为第一密文,登录认证时采用第一加密算法计算得到的密文称为第二密文为例进行说明,应用服务器可以采用用户标识为索引,在密文信息中进行查找,得到用户标识对应的密文,即第一密文。
[0068] 步骤三、应用服务器采用第一加密算法,基于第一密文和用户密码,对登录请求进行登录认证。
[0069] 应用服务器可以采用第一加密算法,对用户密码进行计算,得到第二密文,对第一密文和第二密文进行比对,当第一密文和第二密文相同时,认证登录请求通过,则允许用户标识登录应用服务器。当第一密文和第二密文不同时,认证登录请求不通过,执行下述步骤306。
[0070] 针对采用第一加密算法对用户密码进行计算的过程,服务器可以向第一加密算法输入哈希算法、用户密码、盐值、迭代次数、密文长度,得到第一加密算法输出的密文。其中,应用服务器可以从配置文件或数据库中读取用户标识对应的盐值,采用该盐值进行登录认证,以便保证与加密存储时采用的盐值一致,另外哈希算法、迭代次数、密文长度可以保持固定,以分别和加密存储时采用的哈希算法、盐值、迭代次数、密文长度一致。
[0071] 306、当第一加密算法认证登录请求不通过时,应用服务器采用第二加密算法,基于第一密文和用户密码,对登录请求进行登录认证,当第二加密算法认证登录请求通过时,将密文信息中的第一密文替换为第二密文。
[0072] 第一加密算法认证登录请求不通过可以包括以下两种情况:情况一、登录请求携带的用户密码正确,而由于应用服务器对加密算法进行了升级,之前对用户密码进行加密存储时采用了第二加密算法,而上述步骤305中计算密文时采用了第一加密算法,由于不同的加密算法对相同的用户密码计算出的密文不同,则密文信息的第一密文与第一加密算法计算的第二密文不同,因此登录请求认证未通过。情况二、登录请求携带的用户密码不正确,因此登录请求未通过登录认证。
[0073] 结合以上发明构思,本实施例中,为了保证发生上述情况一时登录请求最终能够通过,应用服务器每次升级加密算法时,仍会存储升级前的第二加密算法,之后在采用第一加密算法认证登录请求不通过时,不会直接拒绝登录请求,而会采用第二加密算法继续对登录请求进行登录认证,当第二加密算法认证登录请求通过时,确定发生了情况一,则将密文信息中第一密文替换为第二密文,以便后续用户标识再次发起登录请求时使用第二密文进行登录认证,而当第二加密算法认证登录请求不通过时,确定发生了情况二,拒绝登录请求。
[0074] 其中,采用第二加密算法对登录请求进行登录认证的过程与采用第一加密算法对登录请求进行登录认证的过程类似,应用服务器可以采用第二加密算法,对用户密码进行计算,得到第二密文,对第一密文和第二密文进行比对,当第一密文和第二密文相同时,应用服务器会认证登录请求通过。当第一密文和第二密文不同时,应用服务器会认证登录请求不通过。
[0075] 在一种可能的设计中,第二加密算法的数量可以为多个,应用服务器可以采用遍历的方式,遍历多个第二加密算法,对于当前遍历到的第二加密算法,采用该第二加密算法,应用服务器基于第一密文和用户密码,对登录请求进行登录认证,当该第二加密算法认证登录请求通过时,将密文信息中第一密文替换为该第二加密算法计算得到的第二密文,当遍历到的第二加密算法认证登录请求不通过时,继续遍历下一个第二加密算法,直到遍历到的第二加密算法认证登录请求通过。而当遍历的多个第二加密算法均认证登录请求不通过时,则确定用户密码错误,结束遍历过程,拒绝登录请求。
[0076] 通过本设计,可以实现以下技术效果:
[0077] 第一,升级加密算法的过程可以在用户无感知的情况下进行:应用服务器升级加密算法后,可以在每个用户标识首次登录应用服务器时,自动替换密文信息中该用户标识对应的密文,从而对密文信息自动更新,以便后续基于更新的密文信息进行登录认证。在更新密文信息的过程中,无需运维人员人工地导出密文信息中的旧密文,再将旧密文替换为新密文,效率极高,节省了人力资源。
[0078] 第二,升级加密算法的过程可以在线完成:应用服务器无需中断业务来更新密文信息,在用户标识登录应用服务器的过程中即可在线自动更新密文信息,避免由于更新密文信息导致业务中断的情况,步骤简单有效,进一步地,应用服务器可以多次升级加密算法,在登录认证时可以在多种加密算法之间平滑切换。
[0079] 第三,无需要求加密算法在升级之前必须为可逆加密算法:相关技术中,仅当升级前的加密算法为可逆加密算法时,应用服务器才可以采用该加密算法对密文信息中的密文进行解密,进而更新密文信息,而对于升级前的加密算法为不可逆加密算法的场景,由于采用不可逆加密算法对用户密码进行加密存储后,无法对密文进行解密得到用户密码,也就无法以对密文信息进行解密-得到用户密码-重新对用户密码加密生成密文的方式来更新应用服务器本地存储的密文,也就无法对加密算法进行升级,应用范围十分狭窄。而本实施例中,第二加密算法可以为不可逆加密算法,升级加密算法后,只需从登录请求中获取登录密码,即可采用升级后的加密算法生成新的密文,进而更新密文,在提供了一种以合法的方式对本地存储的密文进行更新的基础上,无需对升级前的加密算法进行要求,扩展了应用范围,适用于从不可逆加密算法升级为可逆加密算法或不可逆加密算法的场景中,保证可以在不可逆加密算法与可逆加密算法之间进行平滑切换,实用性极强。
[0080] 进一步地,针对遍历多个第二加密算法的顺序,应用服务器可以按照安全程度从高到低的顺序,遍历多个第二加密算法。例如,假设多个第二加密算法按照安全程度从高到低的顺序分别为第二加密算法A-第二加密算法B-第二加密算法C,则应用服务器可以先采用第二加密算法A进行登录认证,第二加密算法A登录认证不通过则采用第二加密算法B进行登录认证,第二加密算法B登录认证不通过则采用第二加密算法C进行登录认证。其中,每个第二加密算法的安全程度可以由开发人员进行设置,本实施例对此不作限定。
[0081] 通过这种遍历方式,由于加密算法升级的趋向通常为从不安全的加密算法升级为安全的加密算法,通过按照安全程度从高到低的顺序进行遍历,能够减少遍历次数,节省遍历时间,从而节省登录认证的时间,提高登录认证的效率。
[0082] 需要说明的第一点是,当应用服务器对密文信息中的密文进行替换后,即可执行后续的业务逻辑。该业务逻辑可以根据实际需求确定,例如可以为向终端发送门户网站的首页地址,则终端会显示门户网站的首页。又如可以为向终端发送产品列表的内容或地址,则终端会显示产品列表。
[0083] 需要说明的第二点是,针对加密算法升级后用户标识修改用户密码的场景,由于用户标识要先成功登录应用服务器,才具有修改用户密码的权限,而之前登录应用服务器的过程中密文信息中的密文已经替换,则在修改用户密码的过程中,采用升级后的加密算法即可对旧用户密码进行二次认证。而对于管理员用户标识修改普通用户标识的场景中,由于管理员用户标识具有较高的权限,无需输入普通用户标识的旧用户密码,直接输入普通用户标识的新用户密码即可,因此应用服务器同样采用升级后的加密算法即可对新用户密码进行加密存储。
[0084] 需要说明的第三点是,当应用服务器通过任一种第二加密算法进行登录认证通过时,则终端会成功登录应用服务器,应用服务器会为终端提供相应服务。
[0085] 307、当再次接收到携带用户标识的登录请求时,应用服务器基于密文信息中的第二密文,对再次接收到的登录请求进行登录认证。
[0086] 由于上述步骤304至步骤306中用户标识对应的第一密文已经替换为第二密文,则当再次接收到登录请求时,应用服务器即可基于第二密文进行登录认证。也即是,当用户标识首次请求登录应用服务器时,应用服务器会采用多种加密算法分别进行计算,进而对密文信息中该用户标识对应的密文进行替换,而在用户标识第2次、第3次乃至第N次登录应用服务器时,应用服务器只需采用第一加密算法以及第二密文,即可对登录请求进行登录认证,每次登录认证通过,终端即会成功登录应用服务器,使用应用服务器提供的服务。
[0087] 以应用服务器为门户网站服务器为例,参见图4,其示出了本实施例提供的一种登录认证方法的操作流程图,该方法包括以下步骤:
[0088] 步骤1:Web用户登录门户网站。
[0089] 步骤2:应用服务器首先使用当前支持的最安全的新加密算法(例如PBKDF2)对登录请求进行认证。
[0090] 2.1Y如果认证通过,则继续后续的业务逻辑(例如展示门户网站首页给用户);
[0091] 2.2N如果认证不通过,则转步骤3;
[0092] 步骤3:继续使用历史版本的应用使用的老加密算法1(例如SHA-256)进行认证;
[0093] 3.1Y如果认证通过,采用从登录请求中获取的用户密码、最安全的加密算法(例如PBKDF2)重新生成密文并替换本地存储的密文(即密文信息中的密文);
[0094] 3.2N如果认证不通过,则转步骤4;
[0095] 步骤4:继续使用历史版本的应用使用的老加密算法2(例如AES-128)进行认证;
[0096] 4.1Y如果认证通过,同“3.1Y”的处理方式;
[0097] 4.2N如果认证不通过,则转步骤5;
[0098] 步骤5:继续使用历史版本用过的老加密算法n进行认证;
[0099] 5.1Y如果认证通过,同“3.1Y”的处理方式;
[0100] 5.2N如果认证不通过,则拒绝登录。
[0101] 其中,虚线框中的3~5及其分支流程可以出现0或多次,表示通过遍历多个第二加密算法进行登录认证的流程。
[0102] 需要说明的第一点是,本实施例提供的方法可以适用于对各种用户标识的用户密码进行加密存储以及登录认证的场景中,用户标识可以包括超级管理员标识、操作员标识、普通用户标识等,本实施例对此不作限定。
[0103] 需要说明的第二点是,本实施例提供的方法可以封装为应用的功能模块,该功能模块可以称为登录管理模块,应用服务器中通过设置登录功能模块,在运行该登录功能模块的过程中即可实现上述描述的全部或部分功能。
[0104] 需要说明的第三点是,本实施例仅是以接收到登录请求时,采用第一加密算法认证该登录请求不通过的情况为例进行说明,而在实施中,也可以发生当接收到携带该用户标识的登录请求时,采用第一加密算法认证该登录请求通过的情况,例如某用户标识是在加密算法升级后进行注册的,加密存储该用户标识的用户密码时即采用了第一加密算法,则第一加密算法会对携带该用户标识的登录请求认证通过。针对这类情况,当采用第一加密算法认证该登录请求通过时,应用服务器即可允许终端基于用户标识登录应用服务器,进而为终端提供应用的各种服务。
[0105] 需要说明的第四点是,本实施例仅是以注册用户标识-升级加密算法-进行登录认证的时序顺序进行说明为例,在实施中,升级加密算法的过程可以在任一时机进行,对此不做限定。
[0106] 本实施例提供的方法,提供了一种保证升级加密算法时无需中断当前业务的登录认证方案,当应用服务器接收到登录请求时,会采用升级后的加密算法和升级前的加密算法分别对登录请求进行登录认证,升级后的加密算法登录认证不通过即对密文信息中的密文进行替换,通过在线自动更新密文信息,实现在线升级加密算法,而无需中断当前业务,从而极大地提高效率。进一步地,无需依赖运维人员的人工操作,节省了人力资源,进一步地,保证运维人员不直接接触用户密码,因而规避了用户密码被泄露的风险,提升了数据安全性。同时,不必要求升级前的加密算法为可逆加密算法,扩展了应用范围,提高了实用性。
[0107] 本实施例可以应用在各种升级加密算法的场景中。以应用服务器为门户网站服务器为例,可以包括以下两个示例性应用场景。
[0108] 应用场景一、假设某门户网站V1版本使用SHA-256算法作为加密算法,V2版本使用PBKDF2算法作为加密算法,即第一加密算法为PBKDF2算法,第二加密算法为SHA-256算法应用本实施例提供的方法,可以从SHA-256算法平滑升级为PBKDF2算法,其操作流程图参见图5,具体包括以下步骤:
[0109] 步骤1、在加密算法升级完成后,用户登录门户网站,用户通过终端向应用服务器发送登录请求。
[0110] 步骤2、应用服务器从登录请求中得到用户名称和用户密码,根据PBKDF2算法计算得到第一密文,和本地存储的密文信息中对应的第二密文进行比对,一致则登录认证通过,否则进入步骤3。
[0111] 其中,以第一密文表示为cipherText1为例,其计算公式可以为:cipherText1=PBKDF2(HashAlg,Password,Salt,Count,dkLen)。
[0112] 步骤3、应用服务器从登录请求中得到用户名称和用户密码,根据SHA-256算法计算得到第三密文,和本地存储的密文信息中对应的第二密文进行比对。
[0113] 3.1Y当第三密文和第二密文一致,则登录认证通过,同时采用第一密文替换本地存储的第二密文。至此,加密存储以及后续登录认证时采用的加密算法都切换到了PBKDF2算法。
[0114] 3.2N当第三密文和第二密文不一致,拒绝登录请求。
[0115] 应用场景二、假设某门户网站V1版本使用AES-128算法作为加密算法,V2版本使用SHA-256算法作为加密算法,V3版本使用PBKDF2算法。即第一加密算法为PBKDF2算法,第二加密算法包括AES-128算法和SHA-256算法。应用本实施例提供的方法,可以在从AES-128算法-SHA-256算法-PBKDF2算法之间平滑切换,其操作流程图参见图6,具体包括以下步骤:
[0116] 步骤1、加密算法升级完成后,用户首次登录门户网站,终端向应用服务器发送登录请求。
[0117] 步骤2、应用服务器从登录请求中得到用户名称和用户密码,根据PBKDF2算法计算得到第一密文,和本地存储的密文信息中对应的第二密文进行比对,一致则登录认证通过,否则进入步骤3。
[0118] 其中,以第一密文表示为cipherText1为例,其计算公式可以为:cipherText1=PBKDF2(HashAlg,Password,Salt,Count,dkLen)。
[0119] 步骤3、应用服务器从登录请求中得到用户名称和用户密码,根据SHA-256算法计算得到第三密文,和本地存储的密文信息中对应的第二密文进行比对,当SHA-256算法计算的第三密文和第二密文一致,则登录认证通过,同时采用第一密文替换本地存储的第二密文。而当SHA-256算法计算的第三密文和第二密文不一致,则执行步骤4。
[0120] 步骤4、从密文信息中读出工作密钥密文和用户密码的密文,根据工作密钥的加密密钥(通常是初始密钥)解密得到工作密钥明文,根据工作密钥明文解密出用户密码,并和登录请求中的用户密码进行比对,如果一致则认证通过,同时采用第一密文替换本地存储的第二密文。至此,加密存储以及后续登录认证时采用的加密算法都切换到了PBKDF2算法。而当第三密文和第二密文不一致,则拒绝用户登录。
[0121] 图7是根据一示例性实施例示出的一种登录认证装置的结构示意图,应用于第一转发设备中,如图7所示,应用于应用服务器中,该装置包括:获取模块701、登录认证模块702和替换模块703。
[0122] 获取模块701,用于从密文信息中获取密文;
[0123] 登录认证模块702,用于执行上述步骤305、步骤306、步骤307;
[0124] 替换模块703,用于将密文信息中第一密文替换为第二密文;
[0125] 在一种可能的设计中,该登录认证模块702,还用于遍历多个第二加密算法。
[0126] 在一种可能的设计中,该登录认证模块702,还用于按照安全程度从高到低的顺序,遍历该多个第二加密算法。
[0127] 在一种可能的设计中,该第二加密算法为不可逆加密算法。
[0128] 在一种可能的设计中,该第一加密算法为PBKDF2算法,该第二加密算法为SHA-256算法;或,该第一加密算法为PBKDF2算法,该第二加密算法包括AES-128算法和SHA-256算法。
[0129] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD)、或者半导体介质(例如固态硬盘)等。
[0130] 以上所述仅为本公开的可选实施例,并不用以限制本公开,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。