1.本发明涉及信息安全领域,尤其涉及一种密码保护方法、电子设备和计算机可读存储介质。
背景技术:2.随着互联网的高速发展,用户对智能手机的依赖越来越大,使得各种客户端应用应运而生,其中一些涉及安全或个人隐私的应用往往需要验证用户输入的密码才可以使用。因此,为防止客户端被黑客攻击导致用户输入的密码被截取而给用户带来经济损失,保护用户密码的安全变得越来越重要。
技术实现要素:3.本发明的目的是提供一种密码保护方法、电子设备和计算机可读存储介质的新技术方案。
4.第一方面,本发明提供了一种密码保护方法,包括如下步骤:步骤101:客户端从服务器获取加密密钥并保存,显示密码键盘,选中首个密码字符框作为当前密码字符框;步骤102:所述客户端接收用户操作信息,判断所述用户操作信息的类型,如为输入密码字符,执行步骤103,如为删除操作信息,执行步骤106;步骤103:所述客户端接收用户输入的密码字符,在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存;步骤104:所述客户端判断当前密码字符框之后是否还存在密码字符框,如果是,执行步骤105,否则,获取保存的全部密码字符密文并发送给所述服务器;步骤105:所述客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框,返回步骤102;步骤106:所述客户端判断当前密码字符框之前是否还存在密码字符框,如果是,执行步骤107,否则,返回步骤102;步骤107:所述客户端将当前密码字符框的前一个密码字符框选中并作为当前密码字符框,删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,返回步骤102。
5.第二方面,本发明提供了一种电子设备,包括:处理器和存储器;存储器,用于存储计算机程序;处理器,用于运行存储器存储的计算机程序来实现本技术中的密码保护方法。
6.第三方面,本发明提供了一种计算机可读存储介质,用于存储计算机程序,当计算机程序在计算机上运行时,使得计算机执行本技术中的密码保护方法。
7.本发明提供了一种密码保护方法、电子设备和计算机可读存储介质,采用本发明
提供的方法,确保了用户输入的密码无法被截取,提高了保护用户密码的安全性。
附图说明
8.图1为本发明实施例1提供的一种密码保护方法的流程图;图2为本发明实施例2提供的一种密码保护方法的流程图;图3和图4为本发明实施例3提供的一种密码保护方法的流程图;图5为本发明具体实施方式中提供的一种电子设备的模块框图。
具体实施方式
9.本技术提出了一种密码保护方法、电子设备和计算机可读存储介质,下面结合附图,对本技术具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
10.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
11.为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
12.实施例1本发明实施例1提供了一种密码保护方法,如图1所示,包括如下步骤:步骤101:客户端从服务器获取加密密钥并保存,显示密码键盘,选中首个密码字符框作为当前密码字符框;步骤102:客户端接收用户操作信息,判断用户操作信息的类型,如为输入密码字符,执行步骤103,如为删除操作信息,执行步骤106;步骤103:客户端接收用户输入的密码字符,在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存;步骤104:客户端判断当前密码字符框之后是否还存在密码字符框,如果是,执行步骤105,否则,获取保存的全部密码字符密文并发送给服务器;步骤105:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框,返回步骤102;步骤106:客户端判断当前密码字符框之前是否还存在密码字符框,如果是,执行步骤107,否则,返回步骤102;步骤107:客户端将当前密码字符框的前一个密码字符框选中并作为当前密码字符框,删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,返回步骤102。
13.可选地,本实施例中,客户端从服务器获取加密密钥并保存,具体包括:步骤a1:客户端向服务器发送获取加密密钥请求;步骤a2:服务器接收客户端发送的加密密钥请求,生成第一加密密钥对,使用预置
的服务器私钥对第一加密密钥对中的第一加密公钥进行加密得到第一加密公钥密文,将第一加密公钥密文发送给客户端;步骤a3:客户端接收服务器发送的第一加密公钥密文,使用预置的服务器公钥对第一加密公钥密文进行解密得到第一加密公钥,将第一加密公钥作为加密密钥。
14.可选地,本实施例中,步骤101之前还包括:客户端向服务器发送包含客户端身份标识的身份认证请求,当接收到服务器发送的认证成功响应时,执行步骤101。
15.可选地,本实施例中,该方法还包括:客户端将全部密码字符框与预置的键盘控件进行绑定;使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存,具体为:客户端使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,将当前密码字符密文存储到键盘控件的存储区中;删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,具体为:客户端删除当前密码字符框中的预设字符,调用键盘控件将键盘控件的存储区中最新存入的密码字符密文删除。
16.可选地,本实施例中,获取保存的全部密码字符密文并发送给服务器之前还包括:客户端生成用于询问用户是否发送密码的信息并显示,等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为确认发送信息,获取保存的全部密码字符密文并发送给服务器,如为删除操作信息,删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,返回步骤102。
17.可选地,本实施例中,该方法还包括:客户端根据密码字符框的个数为各密码字符框分别绑定键盘控件;使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存,具体为:客户端使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,将当前密码字符密文存储到当前密码字符框对应的键盘控件的存储区中;删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,具体为:客户端删除当前密码字符框中的预设字符,调用当前密码字符框对应的键盘控件将键盘控件的存储区中的密码字符密文删除。
18.可选地,本实施例中,步骤102还包括:当客户端判断用户操作信息的类型为选择密码字符框操作信息时,执行步骤b1至步骤b11;步骤b1:客户端根据选择密码字符框操作信息选中相应的密码字符框,将选中的密码字符框作为当前密码字符框;步骤b2:客户端等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为输入密码字符,执行步骤b3,如为删除操作信息,执行步骤b11,如为选择密码字符框操作信息,返回步骤b1;步骤b3:客户端判断当前密码字符框中是否存在预设字符,如果是,执行步骤b4,否则,执行步骤b9;步骤b4:客户端删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,接收用户输入的密码字符,在当前密码字符框中显示预设字符,使用保存的加密
密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存;步骤b5:客户端判断当前密码字符框之后是否还存在密码字符框,如果是,执行步骤b6,否则,执行步骤b7;步骤b6:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框,返回步骤b2;步骤b7:客户端判断预设字符的个数是否达到预设个数,如果是,执行步骤b8,否则,返回步骤b2;步骤b8:客户端生成用于询问用户是否发送密码的信息并显示,等待接收用户操作信息,当接收到用户操作信息时,判断 用户操作信息到的类型,如为确认发送信息,执行步骤b9,如为删除操作信息,执行步骤b10;步骤b9:客户端获取保存的全部密码字符密文并发送给服务器;步骤b10:客户端删除当前密码字符框中的预设字符和当前密码字符框对应的密码字符密文,返回步骤b2;步骤b11:客户端判断当前密码字符框中是否存在预设字符,如果是,执行步骤b10,否则,返回步骤b2。
19.可选地,本实施例中,步骤b7中,返回步骤b2之前还包括:步骤m1:客户端将首个未填充预设字符的密码字符框选中并作为当前密码字符框,等待接收用户输入密码字符,当接收到用户输入的密码字符时,执行步骤m2;步骤m2:客户端在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存;步骤m3:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框。
20.可选地,本实施例中,步骤b7中,客户端判断预设字符的个数未达到预设个数时,执行如下步骤:步骤n1:客户端将首个未填充预设字符的密码字符框选中并作为当前密码字符框,等待接收用户输入密码字符,当接收到用户输入的密码字符时,执行步骤n2;步骤n2:客户端在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存;步骤n3:客户端判断预设字符的个数是否达到预设个数,如果是,执行步骤b8,否则,返回步骤n1。
21.本实施例提供了一种密码保护方法,采用本实施例提供的方法,客户端无需缓存用户输入的密码字符明文,而是缓存密码字符密文,从而确保用户输入的密码字符明文无法被截取,提高了密码的安全性。同时,客户端还可以根据用户的选择来对相应的密码字符密文进行修改,提高了用户操作的灵活性。
22.实施例2本发明实施例2提供了一种密码保护方法,如图2所示,包括如下步骤:步骤201:客户端向服务器发送包含客户端身份标识的身份认证请求,当接收到服务器发送的认证成功响应时,执行步骤202;例如:客户端向服务器发送包含客户端身份标识com.ftsafe.key的身份认证请
求,当接收到服务器发送的认证成功响应时,执行步骤202;可选地,本实施例中,客户端向服务器发送包含客户端身份标识的身份认证请求,具体为:客户端获取预置的服务器公钥,使用服务器公钥对客户端身份标识进行加密得到客户端身份标识密文,向服务器发送包含客户端身份标识密文的身份认证请求;例如:客户端获取预置的服务器公钥04e22b6316e703c8bfb8e28b67dcb85b7d540e80e74a1a3ab9054f1d865858432a5186828937668e5fb7d92d830ee00e635a6db1bd99dc6743368672cca0301a8f,使用服务器公钥对客户端身份标识com.ftsafe.key进行加密得到客户端身份标识密文04c9e3ed8a0bb41dee87812ebc5cbe8c201e3961241f1e4e5de06f09affa81f3c9ad6e01a83f6de9cba74ecbd90449a399ae6045047620a79a321bf06778aa07e5553517ab27d446eb1209c1d6a6b551967a5ba056a32b69c6dfbacd3a65b946c189620755148c67c87fc0e20a1f0a,向服务器发送包含上述客户端身份标识密文的身份认证请求;相应地,服务器接收客户端发送的身份认证请求,使用预置的服务器私钥对身份认证请求中的客户端身份标识密文进行解密得到客户端身份标识,从数据库中获取保存的客户端身份标识列表,判断客户端身份标识是否在客户端身份标识列表中,如果是,向客户端发送认证成功响应,否则,向客户端发送认证失败响应;步骤202:客户端绑定键盘控件,对键盘控件进行初始化;可选地,本实施例中,键盘控件为一个,该键盘控件对应预设个数的密码字符框,并具有一个存储区,该存储区用于存储预设个数的密码字符加密后得到的预设个数的密码字符密文;可选地,本实施例中,对键盘控件进行初始化,具体为:客户端对键盘控件的存储区执行清空操作;可选地,本实施例中,键盘控件的数量为一个,则客户端对该键盘控件进行初始化;步骤203:客户端向服务器发送获取加密密钥请求,接收服务器发送的加密密钥并保存;可选地,本实施例中,步骤203具体为:步骤a1:客户端向服务器发送获取加密密钥请求;步骤a2:服务器接收客户端发送的加密密钥请求,生成第一加密密钥对,使用预置的服务器私钥对第一加密公钥进行加密得到第一加密公钥密文,将第一加密公钥密文发送给客户端;可选地,本实施例中,第一加密密钥对包含第一加密公钥和第一加密私钥;步骤a3:客户端接收服务器发送的第一加密公钥密文,使用预置的服务器公钥对第一加密公钥密文进行解密得到第一加密公钥,将第一加密公钥作为加密密钥。
23.例如:客户端向服务器发送获取加密密钥请求,服务器接收客户端发送的加密密钥请求,生成第一加密密钥对04d6f7311cd6051c1bcd8988536ddd2f1a0d0f48516b4d4ee399b9defa762206c3edd8af08968ab4be5420b5fb55b8e1af1ecd688de817aa2df23859410bc0acb600bca051fae59c9752d8dbdfd05913e72583982239bdda9a16a9171f0315e55def,使用预置的服务器私钥00ab915d410608b5c20de471de774b73dd5afadf11aba8976d70372e99cedd9199对第一加密公钥04d6f7311cd6051c1bcd8988536ddd2f1a0d0f48516b4d4ee399b9defa
762206c3edd8af08968ab4be5420b5fb55b8e1af1ecd688de817aa2df23859410bc0acb6进行加密得到第一加密公钥密文,将第一加密公钥密文发送给客户端;客户端接收服务器发送的第一加密公钥密文,使用预置的服务器公钥04e22b6316e703c8bfb8e28b67dcb85b7d540e80e74a1a3ab9054f1d865858432a5186828937668e5fb7d92d830ee00e635a6db1bd99dc6743368672cca0301a8f对第一加密公钥密文进行解密得到第一加密公钥04d6f7311cd6051c1bcd8988536ddd2f1a0d0f48516b4d4ee399b9defa762206c3edd8af08968ab4be5420b5fb55b8e1af1ecd688de817aa2df23859410bc0acb6,将上述第一加密公钥作为加密密钥。
24.步骤204:客户端显示密码键盘和预设个数的密码字符框,选中首个密码字符框作为当前密码字符框;可选地,本实施例中,客户端按照预设的密码字符个数确定密码字符框的个数,每个密码字符框可以容纳一个密码字符;可选地,本实施例中,客户端显示密码键盘和预设个数的密码字符框,具体包括:步骤b1:客户端判断是否需要随机排列密码键盘,如果是,生成随机排列的密码键盘并显示,执行步骤b2,否则,生成顺序排列的密码键盘并显示,执行步骤b2;步骤b2:客户端显示预设个数的密码字符框;步骤205:客户端等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为输入密码字符,执行步骤206,如为删除操作信息,执行步骤212 ;步骤206:客户端在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存;可选地,本实施例中,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存,具体为:客户端使用保存的加密密钥根据预设算法对用户当前输入的密码字符进行加密得到当前密码字符密文,将当前密码字符密文存储到所述键盘控件的存储区中;可选地,本实施例中,预设算法具体为:国密算法,如sm2算法、sm4密钥分组算法等;可选地,本实施例中,步骤206之前还包括:客户端向服务器发送获取随机数请求,接收服务器发送的随机数并保存;可选地,本实施例中,随机数为一个或预设个数;当随机数的个数为一个时,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存,具体为:客户端使用保存的加密密钥根据预设算法对用户当前输入的密码字符和从服务器获取的随机数进行加密得到第一密文并保存。
25.当随机数的个数为预设个数时,客户端将预设个数的随机数分别与预设个数的密码字符框进行逐一匹配,即使每个密码字符框唯一对应一个随机数;使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文并保存,具体为:客户端获取当前密码字符框对应的随机数,使用保存的加密密钥根据预设算法对用户当前输入的密码字符和当前密码字符框对应的随机数进行加密得到第二密文并保存。
26.由于随机数参与加密过程,因此,即便加密密钥泄露,通过加密密钥解密密文得到相应的明文,也无法获悉明文中的哪一个字符是密码字符,确保了密码的安全性。
27.可选地,本实施例中,预设字符可以为“*”、“.”、“#”等;
优选地,本实施例中,预设字符具体为:*;例如:客户端在当前密码字符框中显示预设字符“*”,使用保存的加密密钥04d6f7311cd6051c1bcd8988536ddd2f1a0d0f48516b4d4ee399b9defa762206c3edd8af08968ab4be5420b5fb55b8e1af1ecd688de817aa2df23859410bc0acb6对用户当前输入的密码字符“1”进行加密得到当前密码字符密文0476c071f9e04a25cf5b4434eb1527b3f45f61e5a3e5af6e35c916b97d92bddc491dd3160bbd75814f8c57fdb267db85e937d948e859273083d9ab23425a97e595ef8e73818e6f2920d46ceb810217e2b466e34ffc305fb5c046659af78b8cfc7973并保存;步骤207:客户端判断当前密码字符框之后是否还存在密码字符框,如果是,执行步骤208,否则,执行步骤209;步骤208:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框,返回步骤205;步骤209:客户端生成用于询问用户是否发送密码的信息并显示,等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为确认发送信息,执行步骤211,如为删除操作信息,执行步骤210;步骤210:客户端删除当前密码字符框中的预设字符和最新保存的密码字符密文,返回步骤205;步骤211:客户端获取保存的全部密码字符密文并发送给服务器;步骤212:客户端判断当前密码字符框之前是否存在密码字符框,如果是,执行步骤213,否则,返回步骤205;步骤213:客户端将当前密码字符框的前一个密码字符框选中并作为当前密码字符框,删除当前密码字符框中的预设字符和最新保存的密码字符密文,返回步骤205。
28.可选地,本实施例中,删除当前密码字符框中的预设字符和最新保存的密码字符密文,具体为:客户端删除当前密码字符框中的预设字符,调用键盘控件将所述键盘控件的存储区中最新存入的密码字符密文删除。
29.例如,本实施例中,执行步骤205至步骤213过程用户输入的密码字符分别为1、2、3、4、5和6,得到对应的密码字符密文分别为0476c071f9e04a25cf5b4434eb1527b3f45f61e5a3e5af6e35c916b97d92bddc491dd3160bbd75814f8c57fdb267db85e937d948e859273083d9ab23425a97e595ef8e73818e6f2920d46ceb810217e2b466e34ffc305fb5c046659af78b8cfc7973、04da82a5c67006ddaf00494160111dfe90c4efc2d2558245570c5e4c54994fb5cfa07ed79051e4032712adf685585353e5af9bdce2e6da42cdd1722d1ddeefa52e8a7c6e45844260041f466199fb923114e745798d3e9d45919e7d470cdd735cd75f、04a31c969b13852da5aeefb1300a8caff210ba5a45bc302ebf6ddae6deaac8fb606c07d78e3c4aff48563b212dacbbc999bf3eff8d31516727cf5e443cf3fe9ab1f3a2c10054e8a3b975ed86ac28c4a50997ffcf8dcd874ea2789a9b908008b7af97、047c179308786c76507e594377d5ce1d3391d212d32dff6f678fed6ba465590ed21d23a7d4b9aad5d6dfb09716438f31990c027d952ab68512bcfa3fc4a3073858248a98c26d4c92b7f41698abe42fa5a334a2fe5a2a2e7a8a9185bb7d8e3629daa3、041c009575c29492e64fa4212e5e9b5b55e23a36bb1f08368fad7787fae946ffc7423e53eb9f1861b0a5c5fb32a917e620970de6e19a65104f34ebedcafbb860b983428ab8ea184a403f161a756affa0d0f
d6e76f9972135e11803e40f36f43ae66f和04c37d793bbdf03aa6552d369e1f47466cef5f6137de33adea276046df7ad859c0b32361312e326f7050c1fa0cdbda3c5a5073bdc6466e66bea431cc26f0de49856f0d2e9d67b4796a6c61d136e6c12e2ea256f09cf6c940fd82fad5ea3ca98416e9;客户端获取保存的全部密码字符密文0476c071f9e04a25cf5b4434eb1527b3f45f61e5a3e5af6e35c916b97d92bddc491dd3160bbd75814f8c57fdb267db85e937d948e859273083d9ab23425a97e595ef8e73818e6f2920d46ceb810217e2b466e34ffc305fb5c046659af78b8cfc797304da82a5c67006ddaf00494160111dfe90c4efc2d2558245570c5e4c54994fb5cfa07ed79051e4032712adf685585353e5af9bdce2e6da42cdd1722d1ddeefa52e8a7c6e45844260041f466199fb923114e745798d3e9d45919e7d470cdd735cd75f04a31c969b13852da5aeefb1300a8caff210ba5a45bc302ebf6ddae6deaac8fb606c07d78e3c4aff48563b212dacbbc999bf3eff8d31516727cf5e443cf3fe9ab1f3a2c10054e8a3b975ed86ac28c4a50997ffcf8dcd874ea2789a9b908008b7af97047c179308786c76507e594377d5ce1d3391d212d32dff6f678fed6ba465590ed21d23a7d4b9aad5d6dfb09716438f31990c027d952ab68512bcfa3fc4a3073858248a98c26d4c92b7f41698abe42fa5a334a2fe5a2a2e7a8a9185bb7d8e3629daa3041c009575c29492e64fa4212e5e9b5b55e23a36bb1f08368fad7787fae946ffc7423e53eb9f1861b0a5c5fb32a917e620970de6e19a65104f34ebedcafbb860b983428ab8ea184a403f161a756affa0d0fd6e76f9972135e11803e40f36f43ae66f04c37d793bbdf03aa6552d369e1f47466cef5f6137de33adea276046df7ad859c0b32361312e326f7050c1fa0cdbda3c5a5073bdc6466e66bea431cc26f0de49856f0d2e9d67b4796a6c61d136e6c12e2ea256f09cf6c940fd82fad5ea3ca98416e9并发送给服务器。
30.本实施例提供了一种密码保护方法,采用本实施例提供的方法,客户端无需缓存用户输入的密码字符明文,而是缓存密码字符密文,从而确保用户输入的密码字符明文无法被截取,提高了密码的安全性。
31.实施例3本发明实施例3提供了一种密码保护方法,如图3和图4所示,包括如下步骤:步骤301:客户端向服务器发送包含客户端身份标识的身份认证请求,当接收到服务器发送的认证成功响应时,执行步骤302;例如:客户端向服务器发送包含客户端身份标识com.ftsafe.key的身份认证请求,当接收到服务器发送的认证成功响应时,执行步骤302;可选地,本实施例中,客户端向服务器发送包含客户端身份标识的身份认证请求,具体为:客户端获取预置的服务器公钥,使用服务器公钥对客户端身份标识进行加密得到客户端身份标识密文,向服务器发送包含客户端身份标识密文的身份认证请求;相应地,服务器接收客户端发送的身份认证请求,使用预置的服务器私钥对身份认证请求中的客户端身份标识密文进行解密得到客户端身份标识,从数据库中获取保存的客户端身份标识列表,判断客户端身份标识是否在客户端身份标识列表中,如果是,向客户端发送认证成功响应,否则,向客户端发送认证失败响应;步骤302:客户端绑定键盘控件,对键盘控件进行初始化;可选地,本实施例中,键盘控件的个数与密码字符框的个数相同,每个键盘控件唯
一对应一个密码字符框,且每个键盘控件都有自己独立的存储区,各个键盘控件的存储区用于存储将用户在对应的密码字符框中输入的密码字符进行加密得到的密码字符密文;可选地,本实施例中,客户端绑定键盘控件,具体为:客户端根据密码字符框的个数为每个密码字符框绑定一个键盘控件;可选地,本实施例中,对键盘控件进行初始化,具体为:客户端根据键盘控件的个数对键盘控件进行初始化;可选地,本实施例中,键盘控件的数量为多个,则客户端逐一对每个键盘控件进行初始化;步骤303:客户端向服务器发送获取加密密钥请求,接收服务器发送的加密密钥并保存;可选地,本实施例中,步骤303具体为:步骤c1:客户端向服务器发送获取加密密钥请求;步骤c2:服务器接收客户端发送的加密密钥请求,生成预设个数的加密密钥对,使用预置的服务器私钥分别对各加密密钥对中的加密公钥进行加密得到预设个数的加密公钥密文,将预设个数的加密公钥密文发送给客户端;可选地,本实施例中,加密密钥对包含加密公钥和加密私钥;步骤c3:客户端接收服务器发送的预设个数的加密公钥密文,使用预置的服务器公钥对各加密公钥密文进行解密得到预设个数的加密公钥,分别将各加密公钥匹配给各键盘控件作为加密密钥。
32.步骤304:客户端显示密码键盘和预设个数的密码字符框,选中首个密码字符框作为当前密码字符框;可选地,本实施例中,客户端显示密码键盘和预设个数的密码字符框,具体包括:步骤b1:客户端判断是否需要随机排列密码键盘,如果是,生成随机排列的密码键盘并显示,执行步骤b2,否则,生成顺序排列的密码键盘并显示,执行步骤b2;步骤b2:客户端显示预设个数的密码字符框;步骤305:客户端等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为输入密码字符,执行步骤306,如为删除操作信息,执行步骤312 ,如为选择密码字符框操作信息,执行步骤314;步骤306:客户端在当前密码字符框中显示预设字符,使用当前密码字符框的键盘控件对应的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,将当前密码字符密文存储到当前密码字符框对应的键盘控件的存储区中;可选地,本实施例中,预设算法具体为:国密算法,如sm2算法、sm4分组算法等;可选地,本实施例中,步骤306之前还包括:客户端向服务器发送获取随机数请求,接收服务器发送的随机数并保存;可选地,本实施例中,随机数为一个或预设个数;当随机数的个数为一个时,使用当前密码字符框的键盘控件对应的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,具体为:客户端使用当前密码字符框的键盘控件对应的加密密钥根据预设算法对用户当前输入的密码字符和从服务器获取的随机数进行加密得到第三密文并保存。
33.当随机数的个数为预设个数时,客户端将预设个数的随机数分别与预设个数的密码字符框进行逐一匹配,即使每个密码字符框唯一对应一个随机数;使用当前密码字符框的键盘控件对应的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,具体为:客户端获取当前密码字符框对应的随机数,使用当前密码字符框的键盘控件对应的加密密钥根据预设算法对用户当前输入的密码字符和当前密码字符框对应的随机数进行加密得到第四密文并保存。
34.可选地,本实施例中,当随机数的个数为预设个数时,各随机数的长度不同,因此,对用户当前输入的密码字符和当前密码字符框对应的随机数进行加密后得到的密文长度也不同,这就确保了即使多个密文被窃取,也无法获悉密文的规则,从而确保了密码的安全性。
35.相应地,服务器在接收到密码字符密文时,使用各加密密钥对中的私钥对各密文进行解密得到相应的明文,按照预设规则将各明文中的字符分别与保存的随机数进行匹配,将无法匹配到的字符取出作为密码字符明文;例如:对密文进行解密得到的明文为12345678,随机数为1234578,那么,6则是密码字符明文。
36.可选地,本实施例中,预设字符具体为:*;步骤307:客户端判断当前密码字符框之后是否还存在密码字符框,如果是,执行步骤308,否则,执行步骤309;步骤308:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框,返回步骤305;步骤309:客户端生成用于询问用户是否发送密码的信息并显示,等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为确认发送信息,执行步骤311,如为删除操作信息,执行步骤310;步骤310:客户端删除当前密码字符框中的预设字符,调用当前密码字符框对应的键盘控件将键盘控件的存储区中的密码字符密文删除,返回步骤305;步骤311:客户端获取保存的全部密码字符密文并发送给服务器;步骤312:客户端判断当前密码字符框之前是否存在密码字符框,如果是,执行步骤313,否则,返回步骤305;步骤313:客户端将当前密码字符框的前一个密码字符框选中并作为当前密码字符框,删除当前密码字符框中的预设字符,调用当前密码字符框对应的键盘控件将键盘控件的存储区中的密码字符密文删除,返回步骤305;步骤314:客户端根据选择密码字符框操作信息选中相应的密码字符框,将选中的密码字符框作为当前密码字符框;步骤315:客户端等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息的类型,如为输入密码字符,执行步骤316,如为删除操作信息,执行步骤325,如为选择密码字符框操作信息,返回步骤314;步骤316:客户端判断当前密码字符框中是否存在预设字符,如果是,执行步骤317,否则,执行步骤318;步骤317:客户端删除当前密码字符框中的预设字符,调用当前密码字符框对应的
键盘控件将所述键盘控件的存储区中的密码字符密文删除,执行步骤318;步骤318:客户端接收用户输入的密码字符,在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,将当前密码字符密文存储到当前密码字符框对应的键盘控件的存储区中;步骤319:客户端判断当前密码字符框之后是否还存在密码字符框,如果是,执行步骤320,否则,执行步骤321;步骤320:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框,返回步骤315;步骤321:客户端判断预设字符的个数是否达到预设个数,如果是,执行步骤322,否则,返回步骤315;可选地,步骤321中,返回步骤315之前还包括:步骤m1:客户端将首个未填充预设字符的密码字符框选中并作为当前面字符框,等待接收用户输入密码字符,当接收到用户输入的密码字符时,执行步骤m2;步骤m2:客户端在当前密码字符框中显示预设字符,使用保存的加密密钥对用户当前输入的密码字符进行加密得到当前密码字符密文,将当前密码字符密文存储到当前密码字符框对应的键盘控件的存储区中;步骤m3:客户端将当前密码字符框的后一个密码字符框选中并作为当前密码字符框。
37.步骤322:客户端生成用于询问用户是否发送密码的信息并显示,等待接收用户操作信息,当接收到用户操作信息时,判断用户操作信息到的类型,如为确认发送信息,执行步骤323,如为删除操作信息,执行步骤324;步骤323:客户端获取保存的全部密码字符密文并发送给服务器;步骤324:客户端删除当前密码字符框中的预设字符,调用当前密码字符框对应的键盘控件将所述键盘控件的存储区中的密码字符密文删除,返回步骤315;步骤325:客户端判断当前密码字符框中是否存在预设字符,如果是,执行步骤326,否则,返回步骤315;步骤326:客户端删除当前密码字符框中的预设字符,调用当前密码字符框对应的键盘控件将所述键盘控件的存储区中的密码字符密文删除,返回步骤315。
38.本实施例提供了一种密码保护方法,采用本实施例提供的方法,客户端无需缓存用户输入的密码字符明文,而是缓存密码字符密文,从而确保用户输入的密码字符明文无法被截取,提高了密码的安全性。同时,客户端还可以根据用户的选择来对相应的密码字符密文进行修改,提高了用户操作的灵活性。
39.本发明还提供了一种电子设备,如图5所示,其示出了适于用来实现本技术各实施例的电子设备(例如实施例1中的客户端)500的结构示意图。本技术实施例中的设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
40.如图5所示,设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其
可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备300操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线505彼此相连。输入/输出(i/o)接口505也连接至总线305。
41.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置505;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
42.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本技术实施例的方法中限定的上述功能。
43.需要说明的是,本技术上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd
‑
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
44.上述计算机可读介质可以是上述设备中所包含的;也可以是单独存在,而未装配入该设备中。
45.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备可以执行上述实施例中的密码保护方法。
46.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、
部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
47.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
48.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
49.本技术提供的电子设备,适用于本技术的密码保护方法的任一实施例,在此不再赘述。
50.本发明提供了一种电子设备,确保了用户输入的密码无法被截取,提高了保护用户密码的安全性。
51.本技术提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述实施例所示的密码保护方法。
52.本技术提供的计算机可读存储介质,适用于上述的密码保护方法的任一实施例,在此不再赘述。
53.本技术提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术中的密码保护方法。
54.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。