发明内容
本申请提出一种密码输入方法,该方法包括:
当监听到针对密码输入框的触发事件时,从服务端获取密码输入界面;所述密码输入界面中的按键随机排序;
采集用户在所述密码输入界面中执行密码输入时的按键位置信息;
将采集到的所述按键位置信息发送至所述服务端,以使得所述服务端基于接收到的所述按键位置信息还原出对应的密码。
可选的,所述从服务端获取密码输入界面包括:
向服务端发送获取密码输入界面的请求消息;
接收所述服务端针对所述请求消息返回的按键布局信息;所述按键布局信息基于所述服务端随机排序后的预设按键组生成;
根据接收到的所述按键布局信息设定对应的密码输入界面。
可选的,所述按键布局信息包括按键随机排序的虚拟键盘图片。
可选的,所述按键位置信息包括按键位置以及按键顺序。
本申请还提出一种密码输入方法,该方法包括:
向客户端发送密码输入界面;所述密码输入界面中的按键随机排序;
接收所述客户端发送的用户在所述密码输入界面中执行密码输入时的按键位置信息;
基于接收到的所述按键位置信息还原出对应的密码。
可选的,所述向客户端发送密码输入界面包括:
接收客户端发送的用于获取密码输入界面的请求消息;
当接收到所述请求消息后,随机排序预设按键组;
基于随机排序后的预设按键组生成对应的按键布局信息发送给所述客户端,以使得所述客户端根据接收到的所述按键布局信息设定对应的密码输入界面。
可选的,所述按键布局信息包括按键随机排序的虚拟键盘图片;
所述基于随机排序后的预设按键组生成对应的按键布局信息:
基于随机排序后的预设按键组生成对应的虚拟键盘图片。
可选的,所述方法还包括:
在本地保存随机排序后的所述预设按键组;
所述基于接收到的所述按键位置顺序还原出对应的密码包括:
基于接收到的所述按键位置顺序在本地保存的随机排序后的所述预设按键组中读取对应的按键;
根据在所述预设按键组中读取到的按键还原出对应的密码。
可选的,所述方法还包括:
当还原出对应的密码后,清除本地保存的随机排序后的所述预设按键组。
本申请还提出一种密码输入装置,该装置包括:
获取模块,用于当监听针对密码输入框的触发事件时,从服务端获取密码输入界面;所述密码输入界面中的按键随机排序;
采集模块,用于采集用户在所述密码输入界面中执行密码输入时的按键位置信息;
第一发送模块,用于将采集到的所述按键位置信息发送至所述服务端,以使得所述服务端基于接收到的所述按键位置信息还原出对应的密码。
可选的,所述获取模块具体用于:
向服务端发送获取密码输入界面的请求消息;
接收所述服务端针对所述请求消息返回的按键布局信息;所述按键布局信息基于所述服务端随机排序后的预设按键组生成;
根据接收到的所述按键布局信息设定对应的密码输入界面。
可选的,所述按键布局信息包括按键随机排序的虚拟键盘图片。
可选的,所述按键位置信息包括按键位置以及按键顺序。
本申请还提出一种密码输入装置,该装置包括:
第二发送模块,用于向客户端发送密码输入界面;所述密码输入界面中的按键随机排序;
接收模块,用于接收所述客户端发送的用户在所述密码输入界面中执行密码输入时的按键位置信息;
还原模块,用于基于接收到的所述按键位置信息还原出对应的密码。
可选的,所述第二发送模块具体用于:
接收客户端发送的用于获取密码输入界面的请求消息;
当接收到所述请求消息后,随机排序预设按键组;
基于随机排序后的预设按键组生成对应的按键布局信息发送给所述客户端,以使得所述客户端根据接收到的所述按键布局信息设定对应的密码输入界面。
可选的,所述按键布局信息包括按键随机排序的虚拟键盘图片;
所述第二发送模块进一步用于:
基于随机排序后的预设按键组生成对应的虚拟键盘图片。
可选的,所述第二发送模块进一步用于:
在本地保存随机排序后的所述预设按键组;
所述还原模块具体用于:
基于接收到的所述按键位置顺序在本地保存的随机排序后的所述预设按键组中读取对应的按键;
根据在所述预设按键组中读取到的按键还原出对应的密码。
可选的,所述装置还包括:
清除模块,用于在还原出对应的密码后,清除本地保存的随机排序后的所述预设按键组。
本申请中,通过客户端在监听到针对密码输入框的触发事件时,从服务端获取按键随机排序的密码输入界面,并采集用户在该密码输入界面中执行密码输入时的按键位置信息,然后将采集到的按键位置信息发送至服务端,服务端在接收到客户端发送的按键位置信息时,则基于接收到的按键位置信息还原出对应的密码;由于在本申请中客户端与服务端在进行密码交互的过程中,不再直接传输用户在客户端一侧输入的原始密码,而是传输用户在执行密码输入时的按键位置信息,因此可以避免将用户的密码信息直接在网络上传输,从而增强了密码的安全性。
具体实施方式
在相关技术中,用户在使用个人登录账号和密码登录客户端时,通常需要由客户端将用户输入的密码通过网络传输至服务端进行验证,在验证通过后,用户方能成功登陆客户端。
然而,随着互联网的飞速发展,使用各种方式窃取用户的密码等敏感信息的行为层出不穷,因此直接将用户输入的密码通过网络传输至服务端,则会面临一定的安全风险。
例如,对于一些基于web的客户端,由于与服务端进行交互的过程中,所交互的数据是完全承载于互联网的,因此直接将用户输入的密码等敏感信息通过互联网来进行传输,则会存在被窃取的风险。
有鉴于此,本申请提出一种密码输入方法,通过客户端在监听到针对密码输入框的触发事件时,从服务端获取按键随机排序的密码输入界面,并采集用户在该密码输入界面中执行密码输入时的按键位置信息,然后将采集到的按键位置信息发送至服务端,服务端在接收到客户端发送的按键位置信息时,则基于接收到的按键位置信息还原出对应的密码;由于在本申请中客户端与服务端在进行密码交互的过程中,不再直接传输用户在客户端一侧输入的原始密码,而是传输用户在执行密码输入时的按键位置信息,因此可以避免将用户的密码信息直接在网络上传输,从而增强了密码的安全性。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种密码输入方法,应用于客户端和服务端,其中,客户端和服务端相互配合,执行以下步骤:
步骤101,当客户端监听到针对密码输入框的触发事件时,从服务端获取密码输入界面;所述密码输入界面中的按键随机排序;
步骤102,客户端采集用户在所述密码输入界面中执行密码输入时的按键位置信息;
步骤103,客户端将采集到的按键位置信息发送至服务端;
步骤104,服务端基于接收到的按键位置信息还原出对应的密码。
上述客户端可以包括面向用户提供服务的客户端软件;其中,该客户端可以是web客户端,也可以是APP客户端,在本申请中不进行特别限定。例如,该客户端可以是支付宝的web客户端,也可以是支付宝的APP客户端。上述服务端可以包括面向客户端提供服务端的服务器、服务器集群或者基于服务器集群构建的云平台。
其中,承载上述客户端的硬件环境,在本实施例中不进行特别限定;例如,可以是PC终端,也可以是用户的移动终端。
在一些实施中,该客户端也可以是指终端,例如移动终端、PC终端等,该移动终端可通过其上携带或安装的操作系统实现上述客户端的功能。
以下以上述客户端为web客户端为例进行说明。
请参见图2,图2为本例中示出的一种web客户端与服务端的交互流程图。
在本例中,web客户端可以面向用户提供一个用于输入用户个人登陆账号和密码的web页面,在该web页面中可以提供一密码输入框。用户在使用个人登录账号和密码登录web客户端时,web客户端可以在后台实时监听用户针对该密码输入框的触发事件。
当web客户端监听到用户针对该密码输入框的触发事件时,则可以将用户的操作焦点定位到该密码输入框中,并向服务端获取密码输入界面。
例如,以触屏终端为例,上述触发事件可以是触摸事件,用户在使用个人登录账号和密码登录web客户端时,web客户端可以在后台实时监听用户针对密码输入框的触摸事件,当监听到用户针对密码输入框中触摸事件时,web客户端可以将用户的操作焦点定位到该密码输入框中(比如可以在密码输入框中显示输入光标),并向服务端获取密码输入界面。
其中,上述密码输入界面,可以是web客户端在将用户操作焦点定位到密码输入框中后,从服务端获取得到的虚拟键盘。为了提高密码输入的安全性,该虚拟键盘中的按键可以随机排序。
请参见图2,当web客户端将用户操作焦点定位到密码输入框中后,此时web客户端可以向服务端发送一个获取密码输入界面的请求消息。当服务端在收到该请求消息后,可以基于接收到的该请求消息与该web客户端建立会话,并在会话建立成功后,为该web客户端随机生成按键布局信息,并将随机生成的按键布局信息返回给该web客户端。
请参见图2,在服务端一侧,可以预先设定按键组,例如,该按键组可以包含用户在执行密码输入时的常用字符按键。当服务端在为该web客户端随机生成按键布局信息时,可以随机排序该预先设定的按键组,并基于随机排序后的该按键组生成对应的按键布局信息,然后将生成的按键布局信息发送给web客户端。
其中,出于安全性考虑,上述按键布局信息可以是服务端为web客户端生成的按键随机排序的虚拟键盘图片,即服务端在对预先设定的按键组进行随机排序后,可以基于随机排序后的按键组生成对应的虚拟键盘图片,然后将生成的该虚拟键盘图片作为按键布局信息发送给web客户端。从而,该按键布局信息在传输给web客户端的过程中,第三方的非法窃取者在窃取该虚拟键盘图片中的按键布局信息时,将不得不对该虚拟键盘图片进行图片识别,来识别该图片中各按键上的文字信息。通过这种方式,可以增加该按键布局信息的窃取难度。
当然,除了以上描述的服务端可以将基于随机排序后的按键组生成对应虚拟键盘图片发送给web客户端以外,在实现时,服务端也可以直接将随机排序后的按键组中各按键的位置信息作为键盘布局信息传输给web客户端,在本申请中不进行特别限定。
另外,请继续参见图2,服务端在对预先设定的按键组进行随机排序后,还可以将随机排序的该按键组在本地进行保存。例如,在示出的一种实现方式中,服务端可以将随机排序后的该按键组存储在与该web客户端建立的会话中。
请参见图2,当web客户端接收到服务端发送的键盘布局信息后,还可以基于接收到的该按键布局信息来设定虚拟键盘。以该按键布局信息为服务端发送的虚拟键盘图片为例,web客户端在接收到该虚拟键盘图片时,可以对该虚拟键盘图片进行图片识别,来识别该虚拟键盘图片中各按键上的文字信息,以获取该虚拟键盘图片上的按键布局。
当web客户端获取到该虚拟键盘图片上的按键布局后,可以根据该按键布局来划定对应的事件响应区块,并基于划定的事件响应区块来重新规划按键位置,根据重新规划后的按键位置设定出相应的虚拟键盘。
请参见图2,当web客户端基于服务端发送的键盘布局信息,设定出对应的虚拟键盘后,web客户端可以将该虚拟键盘向用户输出,然后采集用户在该虚拟键盘中执行密码输入时的按键位置信息。
其中,该按键位置信息可以包括用户在执行密码输入时的按键位置以及按键顺序。
例如,仍以触屏终端为例,web客户端在采集用户在该虚拟键盘中执行密码输入时的按键位置信息时,可以通过监听用户针对该虚拟键盘的触摸事件来实现。由于输出的虚拟键盘中的每一个按键分别对应一个响应区块,web客户端在采集用户在执行密码输入时的按键位置时,可以在后台实时监听用户针对该虚拟键盘的触摸事件,并获取触摸事件的触摸点,然后基于触摸点的位置在虚拟键盘中匹配响应区块,并基于匹配到的响应区块来获取对应的按键位置。
请参见图2,当web客户端采集到用户在该虚拟键盘中执行密码输入时的按键位置信息后,可以对采集到的该按键位置顺序进行提交,发送至服务端。
当服务端接收到web客户端发送的用户在虚拟键盘中执行密码输入时的按键位置信息时,此时服务端可以从与该web客户端建立的会话中读取预先存储的随机排序后的预先设定的按键组,然后基于接收到的按键位置顺序在读取到的该随机排序后的预先设定的按键组中读取对应的按键。
由于web客户端一侧向用户输出的虚拟键盘,是基于服务端随机排序后的按键组设定而成的,服务端本地存储的该随机排序后的按键组与web客户端向用户输出的虚拟键盘,将保持相同的按键布局,因此,服务端在基于接收到的按键位置信息在该随机排序后的按键组中读取出对应的按键后,可以根据读取出的按键正确还原出用户在虚拟键盘中输入的密码。
通过这种方式,可以避免将用户的密码信息直接在网络上进行传输,从而增强密码的安全性。
请参见图2,当服务端基于接收到的按键位置顺序正确还原出用户输入的密码后,可以对还原出的该密码进行验证。如果验证通过,此时用户可以成功登陆web客户端。如果验证不通过,服务端可以拒绝该用户登陆web客户端。
在本例中,当服务端基于接收到的按键位置信息正确还原出用户输入的密码后,服务端可以释放与客户端预先建立的会话,并同时将该会话中预先存储的随机排序后的按键组清除。
当用户再次触发密码输入框输入密码时,web客户端可以重新向服务端发送获取密码输入界面的请求消息,服务端再次接收到该请求消息后,重新对预先设定的按键组进行随机排序为该web生成对应的按键布局信息,具体实现过程不再赘述。
通过这种方式,可以在web客户端向服务端获取密码输入界面时,确保密码输入界面中的按键布局信息的随机性,使得用户每一次的密码输入,web客户端均能够向用户输出按键布局随机排列的虚拟键盘,从而提升用户在输入密码时的安全性。
在以上实施例中,通过客户端在监听到针对密码输入框的触发事件时,从服务端获取按键随机排序的密码输入界面,并采集用户在该密码输入界面中执行密码输入时的按键位置信息,然后将采集到的按键位置信息发送至服务端,服务端在接收到客户端发送的按键位置信息时,则基于接收到的按键位置信息还原出对应的密码;由于在本申请中客户端与服务端在进行密码交互的过程中,不再直接传输用户在客户端一侧输入的原始密码,而是传输用户在执行密码输入时的按键位置信息,因此可以避免将用户的密码信息直接在网络上传输,从而增强了密码的安全性。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图3,本申请提出一种密码输入装置30,应用于客户端;其中,请参见图4,作为承载所述密码输入装置30的客户端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述密码输入装置30通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置30包括:
请求模块301,用于当监听针对密码输入框的触发事件时,从服务端获取密码输入界面;所述密码输入界面中的按键随机排序;
采集模块302,用于采集用户在所述密码输入界面中执行密码输入时的按键位置信息;
第一发送模块303,用于将采集到的所述按键位置信息发送至所述服务端,以使得所述服务端基于接收到的所述按键位置信息还原出对应的密码。
在本例中,所述请求模块301具体用于:
向服务端发送获取密码输入界面的请求消息;
接收所述服务端针对所述请求消息返回的按键布局信息;所述按键布局信息基于所述服务端随机排序后的预设按键组生成;
根据接收到的所述按键布局信息设定对应的密码输入界面。
在本例中,所述按键布局信息包括按键随机排序的虚拟键盘图片。所述按键位置信息包括按键位置以及按键顺序。
请参见图5,本申请提出一种密码输入装置50,应用于服务端;其中,请参见图6,作为承载所述密码输入装置50的服务端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述密码输入装置50通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置50包括:
第二发送模块501,用于向客户端发送密码输入界面;所述密码输入界面中的按键随机排序;
接收模块502,用于接收所述客户端发送的用户在所述密码输入界面中执行密码输入时的按键位置信息;
还原模块503,用于基于接收到的所述按键位置信息还原出对应的密码。
在本例中,所述第二发送模块501具体用于:
接收客户端发送的用于获取密码输入界面的请求消息;
当接收到所述请求消息后,随机排序预设按键组;
基于随机排序后的预设按键组生成对应的按键布局信息发送给所述客户端,以使得所述客户端根据接收到的所述按键布局信息设定对应的密码输入界面。
在本例中,所述按键布局信息包括按键随机排序的虚拟键盘图片;
所述第二发送模块501进一步用于:
基于随机排序后的预设按键组生成对应的虚拟键盘图片。
在本例中,所述第二发送模块501进一步用于:
在本地保存随机排序后的所述预设按键组;
所述还原模块503具体用于:
基于接收到的所述按键位置顺序在本地保存的随机排序后的所述预设按键组中读取对应的按键;
根据在所述预设按键组中读取到的按键还原出对应的密码。
在本例中,所述装置50还包括:
清除模块504,用于在还原出对应的密码后,清除本地保存的随机排序后的所述预设按键组。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。