一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于密码的Web自动登录方法及组件

2022-08-13 13:41:06 来源:中国专利 TAG:

一种基于密码的web自动登录方法及组件
技术领域
1.本发明涉及网络技术领域,尤其涉及一种基于密码的web自动登录方法及组件。


背景技术:

2.web为信息化、网络化社会提供了技术支撑,但由此带来的安全威胁与风险也成为人们普遍关注的问题之一。对web系统客户端而言,web 安全威胁与风险主要是客户端包括app端和web端在登录web应用系统时,用户的机密信息包括用户名(name)、口令(password)等因cookie或者session机制存在易于被泄露、盗用、篡改等安全隐患。为此,在设计开发web应用系统时,常用的安全策略例如有:增加用户口令字(password)长度、在口令字(password)中包含多种字符、采用多因子身份验证等方法对用户机密信息进行强制性限制。尤其是每一种web应用系统都有自己的一套用户登录限制。这些安全措施虽然提升了web用户登录的安全性,但同时也降低了用户体验,其主要缺陷为:

用户难以选用有效的用户机密信息字符,达到web应用系统的密码强度要求;

超过6字符以上、非常规字符难以记忆保存,易于遗忘;

尤其是对于分布式大型web应用系统,每登录一个web应用系统,都需要一组用户机密信息,而且每次登录都需要重新输入用户机密信息。如此这样繁琐操作,用起来让人痛苦不堪。目前,web应用系统客户端在处理用户登录过程中的身份机密数据时,主要是确保安全,用户在使用服务的过程中需要不断响应身份认证操作,繁琐复杂的登录限制过多的牺牲了用户体验,账户注册、登录操作繁琐往往会使用户远离而不回头再次使用。为解决web应用系统密码登录问题,虽然提出了一些自动填充密码登录web方法,但多数是采用存在session、cookie中的用户信息实现自动登录的,都未解决或涉及web前端自动生成用户机密数据信息自动登录以及分别逐一输入等麻烦。


技术实现要素:

3.本发明的目的是为了提供一种基于密码的web自动登录方法及组件,在web应用系统账户登录时,操作简便,易用性好,安全性高。
4.为解决以上技术问题,本发明的技术方案为:第一方面,本发明提供一种基于密码的web自动登录方法,步骤包括:步骤1:web客户端用户登录某web应用系统时,获取用户名name;步骤2:根据用户的用户名name,判断用户是否是已注册用户,若为未注册用户,则执行步骤3,若为已注册用户,则执行步骤4:步骤3: web客户端用户申请注册:步骤3.1:获取web客户端用户的用户名name;步骤3.2:基于随机函数和消息认证算法随机自动生成与用户名name对应的、适应web应用系统安全强度要求的密码randompw;步骤3.3:基于用户名name和密码randompw向web应用系统进行注册;步骤3.4:判断是否注册成功;若注册不成功,则执行步骤3.5,若注册成功,则执行
步骤3.6;步骤3.5:注册不成功,返回步骤3.2,再次生成密码,若循环3次注册仍然注册不成功,返回异常,结束注册;步骤3.6:注册成功,建立name与randompw映射关系表userid并存入web客户端userid数据库,结束注册;步骤4:携带用户认证凭证ticket(name、randompw),按照cookie session 认证方式登录web应用系统。
5.进一步,在步骤2中,判断用户是否是已注册用户的方法为,根据用户的用户名name,查询userid数据库,来获取当前用户的用户名name所对应的密码信息;若userid数据库中有当前用户名name对应的密码,则当前用户为已注册用户;若userid数据库中没有当前用户名name对应的密码,则当前用户为首次登录的未注册用户。
6.进一步,在步骤3.2中,密码生成方法包括:第一密码生成方法、第二密码生成方法和/或第三密码生成方法;第一密码生成方法为:由纯粹的随机函数生成真正随机数,利用消息认证算法计算其hash值,截取其n位形成随机密码。
7.第二密码生成方法为:由纯粹的随机函数与ascii码组合生成随机密码;第三密码生成方法为:通过预置字符串数组,随机取值拼接形成随机密码。
8.进一步,在步骤3.3中,注册的步骤为:按照cookie session认证方式,在浏览器第一次请求服务器时,向cookies和session写入用户认证凭证ticket(name、randompw)形成原始用户信息存储于服务器端数据库,携带ticket自动向web应用系统进行注册。
9.进一步,在步骤3.4中,判断注册是否成功的步骤为:服务器获取从前端传来的ticket(name、randompw),查询服务器端数据库,查询比对当前ticket与原始用户信息是否相同,判断ticket是否正确;如果不相同,则当前ticket(name、randompw)不正确,表示session不在线,即注册不成功;如果相同,则当前ticket(name、randompw)正确,表示session已在线,即注册成功。
10.进一步,在步骤3.5中,生成密码的方法为:为适应不同web应用系统对密码的不同要求,当第1次注册不成功时,采用条件判断(注册次数test)依次使用后续密码生成方法生成不同组合形式的随机密码;当注册次数test为1时,使用第一密码生成方法生成密码,当注册次数test为2时,使用第二密码生成方法生成密码,当注册次数test为3时,使用第三密码生成方法生成密码。
11.进一步,步骤3.6具体为:将ticket写入服务器端数据库,服务器返回请求时将当前session 的唯一标识sessionid 返回给浏览器;将sessionid存入到 cookie信息中,并将cookie返回给浏览器;浏览器查询cookies获取注册成功消息sessionid后,建立name与randompw映射关系表userid (id, name, random pw),其中id是数据库表索引,用于快速访问数据库表中的用户信息;将userid存入web客户端userid数据库;结束注册。
12.进一步,步骤4具体为:步骤4.1:使用当前用户的用户名name到userid数据库查询检索用户名name映射的web应用系统注册的userid;
步骤4.2:若查询检索条件成功,即查询到userid,则携带ticket(name,randompw),按照cookie session 认证方式登录web应用,跳转到用户访问页面;若查询检索条件失败,不授予登录权限。
13.第二方面,本发明提供一种基于密码的web自动登录组件,包括:申请注册模块、密码生成器、web应用系统登录模块和userid数据库;申请注册模块,用于web客户端用户申请注册;密码生成器,用于在用户申请注册时基于随机函数和消息认证算法随机自动生成与用户名name对应的、适应web应用系统安全强度要求的安全性密码randompw;web应用系统登录模块,用于web客户端用户登录某web应用系统时,获取用户名name;用于根据用户的用户名name,判断用户是否是已注册用户,若为未注册用户,则调用申请注册模块进行注册,若为已注册用户,则携带用户认证凭证ticket(name、randompw),按照cookie session 认证方式登录web应用系统;userid数据库,用于存储注册成功后用户登录的用户名name、密码生成器自动生成的密码randompw,以及用户名name和密码randompw的映射关系表userid和用户认证凭证ticket。
14.本发明具有如下有益效果:解决如何自身随机生成密码而实现注册、登录,以免除用户密码难记易忘、登录繁琐问题,使web应用系统账户登录在易用性和安全性之间有良好的性能,确保用户身份认证数据信息得到足够的保护,同时又具有良好的用户应用体验,具体说来,有益效果主要体现在如下几个方面:一、用户只要记住初次提交的用户名name就可以进行自动登录;二、本发明可以随机自动生成符合web应用系统密码强度要求的安全性密码randompw并存储于web客户端userid数据库中,无需用户个人记忆;更为重要的是密码生成器生成的密码长度具有任选性,字符组合具有纯粹的随机性,有效增强了密码的安全性,大大增加了密码破译难度;三、本发明自动获取用户数据信息,通过userid数据库查询验证登录账户是他所声称的那个用户,摒弃每次登录需输入用户名、密码等重复性繁杂操作,能够有效提升用户注册、账户登录的简便性,给web用户以良好地应用体验。
附图说明
15.图1为本发明组件的结构示意图;图2为本发明自动登录的流程示意图;图3为本发明中用户申请注册的流程示意图;图4为本发明中注册次数和密码生成的关联流程示意图。
具体实施方式
16.为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。
17.请参考图1,本发明提供一种基于密码的web自动登录组件,该web自动登录组件为用户访问web应用系统时的前端访问代理组件,该代理组件向web应用系统提交访问请求,
并负责自动登录web应用系统。
18.如图1所示,基于密码的web自动登录组件包括申请注册模块、密码生成器、web应用系统登录模块和userid数据库;申请注册模块,用于web客户端用户申请注册;密码生成器,用于在用户申请注册时基于随机函数和消息认证算法随机自动生成与用户名name对应的、适应web应用系统安全强度要求的安全性密码randompw;web应用系统登录模块,用于web客户端用户登录某web应用系统时,获取用户名name;用于根据用户的用户名name,判断用户是否是已注册用户,若为未注册用户,则调用申请注册模块进行注册,若为已注册用户,则携带用户认证凭证ticket(name、randompw),按照cookie session 认证方式登录web应用系统;userid数据库,用于存储注册成功后用户登录的用户名name、密码生成器自动生成的密码randompw,以及用户名name和密码randompw的映射关系表userid和用户认证凭证ticket。
19.结合图2至图4,本发明还提供一种基于密码的web自动登录方法,采用上述组件进行自动登录,步骤包括:步骤1:web客户端用户登录某web应用系统时,web应用系统登录模块获取用户输入的用户名name;在一些其他实施例中,用户名name还可替换为web系统图标logo;步骤2:web应用系统登录模块根据用户的用户名name,判断用户是否是已注册用户,若为未注册用户,则执行步骤3,若为已注册用户,则执行步骤4:其中,判断用户是否是已注册用户的方法为,根据用户的用户名name,查询userid数据库,来获取当前用户的用户名name所对应的密码信息;若userid数据库中有当前用户名name对应的密码,则当前用户为已注册用户;若userid数据库中没有当前用户名name对应的密码,则当前用户为首次登录的未注册用户。
20.步骤3: 调用申请注册模块,web客户端用户进行申请注册,参阅图3,申请注册流程具体为:步骤3.1:由于用户是第一次登录,在userid数据库中没有该用户信息,获取web客户端用户的用户名name;步骤3.2:调用密码生成器基于随机函数和消息认证算法随机自动生成与用户名name对应的密码randompw;密码生成器采用随机密码算法生成一种安全、随机的符合web应用系统安全性要求的密码 (randompw)。密码生成器具有3种密码生成算法,密码生成方法包括:第一密码生成方法、第二密码生成方法和/或第三密码生成方法;本发明生成的密码不容易被猜到及被破解。
21.第一密码生成方法为:由纯粹的随机函数random()生成真正随机数,利用消息认证算法md5或者sha-256消息摘要算法计算其hash值,截取其n位形成随机密码(randompw)。具体密码生成算法为(以python语言实现为例):

随机函数random()产生随机数number。例如用random.random()获得随机数0.420930296426237;

将random()产生的随机数number进行md5(base64)消息摘要计算获得hash值。例如使用语句hashlib.md5('0.420930296426237'.encode()).hexdigest(),获得hash值434f2bcfa79ea04e130a3be8
300b3dd8;

截取其中任意n位(例如8位)hash值(a79ea04e)作为randompw。
22.第二密码生成方法为:由纯粹的随机函数random()与ascii码随机组合生成密码(randompw)。具体密码生成算法为(以python语言实现为例):

随机函数random()在可视ascii码范围内(33~126)产生一个随机整数number;例如使用random.randint(33,126)获得number=69,

将number转换成ascii码字符cout=chr(number),例如e= chr(69);

循环上述



步骤n次获得n个字符,使用字符串拼接方法如join()方法,将n个字符拼接后作为randompw。
23.第三密码生成方法为:通过预置字符串数组,随机取值拼接形成随机密码(randompw)。具体密码生成算法为(以php语言实现为例):

利用array()函数创建一个字符数组$chars=array(),array()包括a~z、a~z、0~9以及常用特殊字符~!@#$%^&*()_ ;

利用array_rand($chars,number)函数从字符数组$chars中选出$number个随机键名:$keys=array_rand($chars,number);

根据已获取的随机键名数组$keys,从数组$chars取出n个字符拼接成字符串作为randompw。
24.步骤3.3:基于用户名name和密码randompw向web应用系统进行注册;步骤3.3中,注册的步骤为:按照cookie session认证方式,前端访问代理组件在浏览器第一次请求服务器时,向cookies和session写入用户认证凭证ticket(name、randompw)形成原始用户信息存储于服务器端数据库,携带ticket自动向web应用系统进行注册。
25.步骤3.4:判断是否注册成功;若注册不成功,则执行步骤3.5,若注册成功,则执行步骤3.6;步骤3.4中,判断注册是否成功的步骤为:服务器获取从前端访问代理组件传来的ticket(name、randompw),查询服务器端数据库,查询比对当前ticket与原始用户信息是否相同,判断ticket是否正确;如果不相同,则当前ticket(name、randompw)不正确,表示session不在线,即注册不成功;如果相同,则当前ticket(name、randompw)正确,表示session已在线,即注册成功(用session判断该用户访问是否已登录),例如采用result=sessionlisttener.isone(session),判断result是否为true,若result为true,说明该session已在线,即已成功注册;该语句还具有销毁session的作用,以防泄露用户机密信息。
26.步骤3.5:注册不成功,返回“用户信息不正确,注册登录不成功”。例如,若判断result为false,说明该session不在线,返回“用户登录不成功”信息;提示需重新注册。返回步骤3.2调用运行密码生成器,再次生成密码,若循环3次注册(依次使用3个不同的密码生成算法生成3个不同的随机密码),仍然注册不成功,返回异常,结束注册;参阅图4,步骤3.5中,生成密码的方法为:为适应不同web应用系统对密码的不同要求,当第1次注册不成功时,采用条件判断(注册次数test)依次使用后续密码生成方法生成不同组合形式的随机密码;当注册次数test为1时,使用第一密码生成方法生成密码,当注册次数test为2时,使用第二密码生成方法生成密码,当注册次数test为3时,使用第三密码生成方法生成密码。
27.步骤3.6:注册成功,建立name与randompw映射关系表userid并存入web客户端userid数据库,结束注册;步骤3.6具体为:将ticket写入服务器端数据库(例如redis数据
库),服务器返回请求时将当前session 的唯一标识sessionid 返回给浏览器,包括
ꢀ“
用户已登录”信息;将sessionid存入到 cookie信息中,并将cookie返回给浏览器;浏览器接收到服务器返回的 sessionid后,将此信息存入到 cookie 中,同时cookie 记录此 sessionid 属于哪个域名。前端访问代理组件通过查询cookies获取注册登录成功消息sessionid后,建立name与randompw映射关系表userid (id, name, random pw);将userid存入web客户端userid数据库或者用户数据存储文件。该userid数据库的作用还包括备用,即当用户需要了解自己注册所使用的用户名和密码时,可查询userid数据库获知用户注册信息(name,randompw)。
28.步骤4:携带用户认证凭证ticket(name、randompw),按照cookie session 认证方式登录web应用系统,具体为:步骤4.1:使用当前用户的用户名name到userid数据库查询检索用户名name映射的web应用系统注册的userid;步骤4.2:若查询检索条件成功,即查询到userid,则携带ticket(name,randompw),按照cookie session 认证方式登录web应用,跳转到用户访问页面;若查询检索条件失败,不授予登录权限。
29.本发明意在解决如何通过组件系统自身随机生成安全性密码而实现注册、登录,以免除用户密码难记易忘、登录繁琐问题。本发明所要解决的问题是:

如何实现满足web应用系统所需要的密码强度问题;

需要用户记忆用户密码问题;

登录web应用系统需要每次逐一输入用户机密数据的重复操作问题。
30.在本发明中,申请注册模块、密码生成器和web应用系统自动登录模块三个功能模块是整个基于访问代理组件自动登录方法及其组件的最基本内容。其创新点有三:一是申请注册模块依照密码生成器自动生成的安全性密码randompw向web应用系统进行注册;二是密码生成器由基于随机函数random()及md5或sha-256消息摘要算法等多种密码生成算法构造,可以生成符合web应用系统要求的安全性密码;三是web应用系统自动登录模块是通过查询web客户端user id数据库获取用户注册信息自动提交user id包括密码,实现web应用系统的自动登录的。其它模块功能例如userid数据库模块或者存储文件,主要用于存储用户登录的用户名(name)、密码生成器生成的密码(randompw),以及它们的映射关系表(user id)和ticket。本发明的核心为系统自动生成安全性密码,并将成功注册的用户信息保存在代理组件的userid数据库中,用以实现web自动登录。
31.由此可知,使用本发明可以解决的问题为:

用户只需记忆注册时的用户名(name)或者点击web系统图标(logo)即可实现自动登录,无需记忆复杂的用户注册信息;

登录密码依据web系统安全要求由代理组件自动生成,并保存在代理组件的本地userid数据库或者存储文件中,无遗忘、泄露等安全风险;

改变了每次登录web应用系统,都需要用户输入用户名(name)和密码(password)问题,使得web访问登录操作简便、高效,提升了用户体验。使用本发明可以使得web应用系统(包括移动web客户端、app)用户无需用户记忆安全密码,无论在哪里、欲登录什么web应用系统,所有的web应用系统都经过浏览器(客户端)的组件实现自动登录。
32.本发明未涉及部分均与现有技术相同或采用现有技术加以实现。
33.以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发
明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献