一种密码的设置方法、装置和系统
技术领域
本申请涉及信息安全的技术领域,特别是涉及一种密码的设置方法、一种密码的设置装置和一种密码的设置系统。
背景技术
随着互联网的发展,具有不同服务功能的平台越来越多,例如提供了门户网站的平台、提供了即时通讯工具(一种应用程序)的平台等等,这些平台为人们的生活和工作带来了方便。
用户通常会在平台上注册账号,并设置相应的密码以保证该账号的安全,用户利用账号和密码可以登录该平台的网站或者应用程序,享用该平台提供的服务。例如,用户利用账号和密码可以登陆提供了即时通讯工具的平台,与好友进行即时通讯。
很多时候,为了便于记忆,用户往往习惯于在不同的平台上使用相同的账号和密码。这就导致一旦用户在某个平台上的账号和密码被不法分子获取时,不法分子可以利用账号和密码登录其他平台,盗取用户的个人信息或用户的虚拟财产、真实财产,甚至利用用户的个人信息进行诈骗等违法行为。由此可见,用户在不同的平台上使用相同的账号和密码是存在极大的隐患的,导致用户的账号的安全性很低。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种密码设置机制,以提高密码的强度,提高用户个人信息的安全性。
发明内容
本申请实施例所要解决的技术问题是提供一种密码的设置方法,以提高密码的强度,提高用户个人信息的安全性。
相应的,本申请实施例还提供了一种密码的设置装置和一种密码的设置系统,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种密码的设置方法,包括:
在第一服务器中接收密码的设置请求;所述设置请求包括第一用户标识和第一字符串;
根据所述第一用户标识和所述第一字符串生成校验请求;
将所述校验请求发送至一个或多个第二服务器;
接收所述一个或多个第二服务器返回的,根据所述校验请求获得的校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
当所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
优选的,所述根据所述第一用户标识和所述第一字符串生成校验请求的步骤包括:
对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
对所述第一密文进行第二加密处理,获得数字签名;
将所述第一密文和所述数字签名封装进校验请求中。
优选的,所述对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文的步骤包括:
采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
优选的,所述对所述第一密文进行第二加密处理,获得数字签名的步骤包括:
采用指定的私钥对所述第一密文进行加密,获得数字签名。
优选的,所述将所述校验请求发送至一个或多个第二服务器的步骤包括:
通过指定的加密传输方式将所述校验请求发送至一个或多个第二服务器。
优选的,所述一个或多个第二服务器通过以下方式获得校验结果:
对所述校验请求进行有效性校验;所述有效性校验包括时间校验和签名校验中的至少一种;
当所述校验请求通过所述有效性校验时,校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同;
当所述第一字符串与所述第一密码相同时,将所述第一字符串与所述第一密码相同的信息设置为校验结果;
当所述第一字符串与所述第一密码相异时,将所述第一字符串与所述第一密码相异的信息设置为校验结果。
优选的,所述校验请求包括第一时间戳;所述第二服务器具有第二时间戳;所述对所述校验请求进行有效性校验的步骤包括:
计算所述第一时间戳与所述第二时间戳的差值;
当所述差值在预设的时间阈值内时,判断所述校验请求通过时间校验。
优选的,所述对所述校验请求进行有效性校验的步骤包括:
对所述第一密文进行第三加密处理,获得第二字符串;
当所述第二字符串与所述数字签名相同时,判断所述校验请求通过签名校验。
优选的,所述对所述第一密文进行第三加密处理,获得第二字符串的步骤包括:
采用指定的公钥对所述第一密文进行加密,获得第二字符串。
优选的,所述校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同的步骤包括:
对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串;
查找与所述第一用户标识关联的第二用户标识;所述第二用户标识具有关联的第一密码;
校验所述第一字符串与所述第一密码是否相同。
优选的,所述对所述第一密文进行第二解密处理,获得所述第一用户标识和所述第一字符串的步骤包括:
采用所述目标密钥对所述第一密文进行解密,获得所述第一用户标识和所述第一字符串。
优选的,所述校验所述第一字符串与所述第一密码是否相同的步骤包括:
采用第一特征密钥对所述第一字符串进行加密,获得第二密文;
校验所述第二密文与第三密文是否相同;所述第三密文为采用所述第一特征密钥对所述第一密码加密所获得的密文;
当所述第二密文与所述第三密文相同时,判断所述第一字符串与所述第一密码相同;
当所述第二密文与所述第三密文相异时,判断所述第一字符串与所述第一密码相异。
优选的,所述第一字符串符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件为所述第一字符串满足预设的强度条件;
所述第二条件为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
优选的,所述方法,还包括:
当所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
优选的,所述方法,还包括:
采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;
将所述第四密文存储在数据库中。
本申请实施例还公开了一种密码的设置方法,包括:
在第二服务器中接收由第一服务器发送的校验请求;所述校验请求为所述第一服务器在接收到密码的设置请求时,根据所述设置请求中的第一用户标识和第一字符串生成的校验请求;
根据所述校验请求获得校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
将所述校验结果返回所述第一服务器;所述第一服务器用于在所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
本申请实施例还公开了一种密码的设置装置,包括:
设置请求接收模块,用于在第一服务器中接收密码的设置请求;所述设置请求包括第一用户标识和第一字符串;
校验请求生成模块,用于根据所述第一用户标识和所述第一字符串生成校验请求;
校验请求生发送模块,用于将所述校验请求发送至一个或多个第二服务器;
校验结果接收模块,用于接收所述一个或多个第二服务器返回的,根据所述校验请求获得的校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
密码设置模块,用于当所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
优选的,所述设置请求接收模块包括:
第一密文获得子模块,用于对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
数字签名获得子模块,用于对所述第一密文进行第二加密处理,获得数字签名;
封装子模块,用于将所述第一密文和所述数字签名封装进校验请求中。
优选的,所述第一密文获得子模块包括:
对称加密子模块,用于采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
优选的,所述数字签名获得子模块包括:
第一非对称加密子模块,用于采用指定的私钥对所述第一密文进行加密,获得数字签名。
优选的,所述校验请求生发送模块包括:
加密传输子模块,用于通过指定的加密传输方式将所述校验请求发送至一个或多个第二服务器。
优选的,所述第一字符串符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件为所述第一字符串满足预设的强度条件;
所述第二条件为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
优选的,所述装置,还包括:
提示信息生成模块,当所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
优选的,所述装置,还包括:
第四密文获得模块,用于采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;
存储模块,用于将所述第四密文存储在数据库中。
本申请实施例还公开了一种密码的设置装置,包括:
校验请求接收模块,用于在第二服务器中接收由第一服务器发送的校验请求;所述校验请求为所述第一服务器在接收到密码的设置请求时,根据所述设置请求中的第一用户标识和第一字符串生成的校验请求;
校验结果获得模块,用于根据所述校验请求获得校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
校验结果返回模块,用于将所述校验结果返回所述第一服务器;所述第一服务器用于所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
本申请实施例还公开了一种密码的设置系统,包括:
所述系统包括第一服务器和一个或多个第二服务器;
其中,所述第一服务器包括:
设置请求接收模块,用于在第一服务器中接收密码的设置请求;所述设置请求包括第一用户标识和第一字符串;
校验请求生成模块,用于根据所述第一用户标识和所述第一字符串生成校验请求;
校验请求生发送模块,用于将所述校验请求发送至一个或多个第二服务器;
校验结果接收模块,用于接收所述一个或多个第二服务器返回的,根据所述校验请求获得的校验结果;
密码设置模块,用于当所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码;
所述一个或多个第二服务器包括:
校验请求接收模块,用于在第二服务器中接收由第一服务器发送的校验请求;
校验结果获得模块,用于根据所述校验请求获得校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
校验结果返回模块,用于将所述校验结果返回所述第一服务器。
与背景技术相比,本申请实施例包括以下优点:
本申请实施例中,第一服务器根据密码的设置请求中的第一用户标识和第一密码生成校验请求,请求一个或多个第二服务器进行是否存在相同密码的校验,当第一服务器接收到第一字符串与第一用户标识在第二服务器中对应的第一密码相异的校验结果时,把第一字符串设置为第一用户标识在第一服务器中的第二密码,进而确保同一用户不会在不同的服务器中设置相同的密码,提高了密码的强度,大大降低了用户在某个服务器中的账号和密码泄露时对当前服务器中的账号和密码的影响,进而提高了用户个人信息的安全性。
在第一服务器和第二服务器的交互过程中,第二服务器并不需要知道第一服务器的第二特征密钥,第一服务器也并不需要第二服务器的第一特征密钥,第一服务器和第二服务器依然各自维护自己的特征密钥,保证了特征密钥的隐私性。
第一服务器利用密钥对第一用户标识和第一字符串进行加密生成第一密文,将第一密文封装进校验请求后,通过加密的传输方式将校验请求发送至第二服务器,保证了第一用户标识和第一字符串在传输过程中的安全。
本申请实施例中,第一服务器可以对第一用户标识和第一字符串进行第一加密处理,生成对应的第一密文,提高了用户信息(即第一用户标识和第一字符串)的安全性。
本申请实施例中,可以通过加密传输方式发送校验请求,进行一步提高了用户信息的安全性。
本申请实施例对第一服务器发送校验请求进行有效性校验,以保证校验请求的安全性,同时,在判断校验请求无效时,无需再进行后续的校验操作,进而能够减少系统的开销。
附图说明
图1是本申请的一种密码的设置方法实施例1的步骤流程图;
图2是本申请的一种密码的设置方法实施例2的步骤流程图;
图3是本申请的一种密码的设置装置实施例1的结构框图;
图4是本申请的一种密码的设置装置实施例2的结构框图;
图5是本申请的一种密码的设置系统实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在传统的密码设置方法中,用户通过客户端(例如,浏览器)在平台上设置密码时,平台通常会对用户设置为密码的字符串进行密码强度校核,当字符串通过强度校核后,该字符串可以设置为密码,而平台会采用自身所特有的密钥对用户设置的密码进行加密,以密文的方式存储在数据库中,以确保密码的安全性。
虽然进行强度校验,可以增大“暴力破解”(即利用字典穷举)密码的难度,但是这些要求同样也会增加用户记忆密码的难度,而且还会增加用户在多个平台上使用同一密码的可能性。
亦即,为便于记忆与管理,很多用户都习惯在不同的平台上设置相同的账号和密码。而随着计算机的发展,破解密文获得明文的方法已经越来越多,这就导致一旦用户在某个平台上的账号和密码被不法分子获取时,不法分子可以在几分钟或几小时之内破解密文,获得明文形式的密码。进而可以利用该用户的账号和密码登录其他平台,盗取用户的个人信息或用户的虚拟财产、真实财产,甚至利用用户的个人信息进行诈骗等违法行为。
传统的密码设置方法是只能够在单独一个平台上应用的,并不能够检测到用户是否在不同的平台上使用了相同的账号和密码,无法避免用户在不同的平台上使用相同的账号和密码的问题,因而,上述的这种基于平台的密码设置方法存在极大的隐患,安全性很低。
因此,提出本申请实施例的核心构思之一,在不同的服务器中对用户的密码进行校验,防止同一个用户在不同的服务器之间设置相同的密码。
参照图1,示出了本申请的一种密码的设置方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,在第一服务器中接收密码的设置请求;
需要说明的是,服务器可以控制对网络或网络资源(例如,磁盘驱动器、打印机等)进行访问的计算机,并能够为在网络上的计算机提供资源使其犹如工作站那样地进行操作,通常可分为文件服务器、数据库服务器和应用程序服务器等类型。
在具体实现中,密码的设置请求可以是指用户发出的将某个字符串设置为密码的指示。用户可以在客户端通过账号密码和独立密码中至少一个的设置或修改,或者其他方式,触发密码的设置请求。
其中,账号密码可以为登录用户账号的密码,可以在注册新的用户账号时设置,也可以在设置后进行修改;独立密码可以为登录用户账号后保护某些业务对象的密码,例如,独立密码可以为在即时通讯工具中查看聊天记录、登录关联邮箱的密码,或者,可以为确认支付的密码,或者,可以为虚拟物品的处理(如交易、销毁等)保护密码,等等,本申请实施例对此不加以限制。
客户端将密码的设置请求发送至第一服务器,设置请求可以包括第一用户标识和第一字符串。
其中,第一用户标识可以为能够代表一个在第一服务器中唯一确定的用户的信息,可以包括用户账号、与用户账号绑定的信息中的至少一种;而与用户账号绑定的信息可以包括如下至少一种:
其他用户账号、邮箱、电话号码、名称。
第一字符串可以为请求设置为密码的字符串,具体可以是任意形式的字符串。
当然,上述密码的设置请求的触发方式和内容只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他触发方式和内容,本申请实施例对此不加以限制。另外,除了上述触发方式和内容外,本领域技术人员还可以根据实际需要采用其它触发方式和内容,本申请实施例对此也不加以限制。
步骤102,根据所述第一用户标识和所述第一字符串生成校验请求;
在本申请实施例中,校验请求可以是指第一服务器发出的校验是否存在与第一字符串相同的密码的指示。
在本申请的一种优选实施例中,步骤102可以包括以下子步骤:
子步骤S11,对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
在具体实现中,第一服务器所接收的第一用户标识和第一字符串是明文的形式,本申请实施例中,第一服务器可以对第一用户标识和第一字符串进行第一加密处理,生成对应的第一密文,提高了用户信息(即第一用户标识和第一字符串)的安全性。
在本申请实施例的一种优选示例中,子步骤S11可以包括以下子步骤:
子步骤S111,采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
在本示例中,可以采用对称加密的方式进行第一加密处理。其中,对称加密可以为采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。
在实际应用中,第一服务器和第二服务器可以预先约定对第一用户标识和第一字符串进行加密和解密的密钥(即目标密钥),每个第二服务器可以具有各自对应的目标密钥。
第一服务器和第二服务器也可以约定加密和解密的算法,规定如何进行加密和解密,例如DES(Data Encryption Standard,数据加密算法)算法、IDEA(International DataEncryption Algorithm,国际数据加密算法)算法、AES(Advanced Encryption Standard,高级加密标准)算法,等等,本申请实施例对称不加以限制。
当然,本申请实施例还可以采用其他方式,例如非对称加密,进行第一加密处理,本申请实施例对此也不加以限制。
子步骤S12,对所述第一密文进行第二加密处理,获得数字签名;
在本示例中,可以采用非对称加密的方式进行第二加密处理。其中,非对称加密可以为加密和解密使用的是两个不同密钥的密码系统的加密方法。
对数据或文件(例如,第一密文)生成数字签名,接收者(例如,第二服务器)可以通过验证数字签名来验证数据或文件(例如,第一密文)是否完整准确,确定数据或文件(例如,第一密文)是由生成数字签名方(例如,第一服务器)发送而不是第三方伪造的,且该数据或文件(例如,第一密文)未被篡改过。
一套数字签名通常可以包括两种互补的算法,其中一种算法可以用于生成数字签名,另一种算法可以用于验证数字签名。
在本申请实施例的一种优选示例中,子步骤S12可以包括以下子步骤:
子步骤S121,采用指定的私钥对所述第一密文进行加密,获得数字签名。
非对称式加密的加密和解密所使用的不是同一个密钥,通常需要两个密钥:公钥(public key)和私钥(private key)。公钥与私钥是一对的,私钥可以由加密方(例如,第一服务器)保存,公钥可以向解密方(例如,第二服务器)公开。
本示例中,若第一服务器用私钥对数据进行加密,则第二服务器可以用对应的公钥进行解密。
当加密方(例如,第一服务器)使用自己的私钥进行数据加密,相当于在数据上做数字签名,解密方(例如,第二服务器)用公钥解密数据,由于私钥为加密方(例如,第一服务器)所有,如果解密方(例如,第二服务器)能够正常解密,则可以表明数据来自加密方(例如,第一服务器),保证了数据并非假冒和没有在传输过程中被修改。
在实际应用中,第一服务器和第二服务器可以事先约定相匹配的,生成数字签名的私钥和解密数字签名的公钥。
第一服务器和第二服务器也可以约定加密和解密的算法,规定如何进行加密和解密,例如,RSA算法(一种非对称加密算法,RSA分别为罗纳德·李维斯特Ron Rivest、阿迪·萨莫尔Adi Shamir、伦纳德·阿德曼Leonard Adleman的形式开头字母)、ElGamal算法(一种加密算法)、背包算法、Rabin算法(RSA算法的特例)、迪菲-赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)等等,本申请实施例对此不加以限制。
子步骤S13,将所述第一密文和所述数字签名封装进校验请求中。
在本申请实施例中,第一服务器和第二服务器事先约定传输的协议,第一服务器可以按照该传输的协议将第一密文和数字签名封装进校验请求中,发送至第二服务器。
需要说明的是,在某些特定的场景中可以不进行第一加密处理和第二加密处理,即可以不生成第一密文和数字签名,直接将第一用户标识和第一字符串封装进校验请求中,但是校验请求需要具备私密性,例如,第二服务器只接收白名单中的第一服务器的校验请求,本申请实施例对此不加以限制。
步骤103,将所述校验请求发送至一个或多个第二服务器;
需要说明的是,第一服务器与第二服务器可以分别属于不同的平台,但是可以面对相同的用户,该用户可以在第一服务器和第二服务器中注册账号。
第二服务器可以开放一个指定的API(Application Programming Interface,应用程序编程接口)接口,第一服务器可以调用该指定的API接口,按照该指定的API接口的参数规范,通过该API对应的URL(Uniform Resource Locator,统一资源定位符)向第二服务器发送校验请求,请求第二服务器校验该用户是否存在与需要设置为密码的第一字符串相同的密码。
在本申请的一种优选实施例中,步骤103可以包括以下子步骤:
子步骤S21,通过指定的加密传输方式将所述校验请求发送至第二服务器。
本申请实施例中,可以通过加密传输方式发送校验请求,进行一步提高了用户信息的安全性。
例如,第一服务器可以通过超文本传输安全协议(Hyper Transfer Protocolover Secure Socket Layer,HTTPS)发送校验请求,也可以通过其他加密传输方式发送校验请求,本申请实施例对此不加以限制。
当然,在某些特定的场景中可以不通过加密传输方式发送校验请求,但是传输方式需要具备安全性。
步骤104,接收所述一个或多个第二服务器返回的,根据所述校验请求获得的校验结果;
其中,所述校验结果可以为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
在具体实现中,第二服务器可以根据校验请求,校验第一字符串与第一密码是否相同。
在本申请的一种优选实施例中,第二服务器可以通过以下方式获得校验结果:
子步骤S31,对所述校验请求进行有效性校验;所述有效性校验可以包括时间校验和签名校验中的至少一种;
在本申请实施例中,若第二服务器判断校验请求有效,则可以对第一字符串进行校验,若第二服务器判断校验请求无效,则可以不对第一字符串进行校验。
本申请实施例对第一服务器发送校验请求进行有效性校验,以保证校验请求的安全性,同时,在判断校验请求无效时,无需再进行后续的校验操作,进而能够减少系统的开销。
在本申请的一种优选实施例中,所述校验请求可以包括第一时间戳;所述第二服务器可以具有第二时间戳;子步骤S31可以包括以下子步骤:
子步骤S311,计算所述第一时间戳与所述第二时间戳的差值;
子步骤S312,当所述差值在预设的时间阈值内时,判断所述校验请求通过时间校验。
在本申请实施例中,第二服务器可以对校验请求进行时间校验,以保证第一服务器和第二服务器时间的一致性。
时间戳(timestamp),通常是一个字符序列,可以唯一的表示某一刻的时间。而第一时间戳可以表示第一服务器的系统时间,第二时间戳可以表示第二服务器的系统时间。
在具体实现时,第一服务器可以将第一时间戳添加到URL中,随校验请求一起发送给第二服务器。
该第一时间戳与第二时间戳可以用于校验第一服务器和第二服务器在时间上的一致性,该第一时间戳与该第二时间戳的差值可以允许比较小误差的存在,例如,第一时间戳可以与第二时间戳相差几分钟(即时间阈值),是可以接受的,可以认为通过时间校验。
本申请实施例通过校验第一服务器的第一时间戳和第二服务器的第二时间戳的一致性,提升了第二服务器API安全,提高了密码校验的安全性。
在本申请的一种优选实施例中,子步骤S31可以包括以下子步骤:
子步骤S313,对所述第一密文进行第三加密处理,获得第二字符串;
子步骤S314,当所述第二字符串与所述数字签名相同时,判断所述校验请求通过签名校验。
在本申请实施例中,第二服务器可以对校验请求进行签名校验,以保证校验请求的真实性。
在具体实现中,第二服务器可以采用与子步骤S12相对应的非对称加密的方式进行第三加密处理。
若第二服务器通过验证数字签名来验证第一密文完整准确,则可以确定第一密文是由生成第一服务器发送而不是第三方伪造的,且该第一密文未被篡改过。
在本申请实施例的一种优选示例中,子步骤S313可以包括以下子步骤:
子步骤S3131,采用指定的公钥对第一密文进行加密,获得第二字符串。
在具体实现中,与子步骤S121相对应地,第二服务器可以采用事先约定的公钥验证数字签名。
第二服务器可以采用约定的公钥加密第一密文,生成第二字符串。
需要说明的是,在一种情形中,本申请实施例可以对校验请求进行时间校验,而不对校验请求进行签名校验,当校验请求通过时间校验时,判断校验请求通过有效性校验。
在另一种情形中,本申请实施例可以对校验请求进行签名校验,而不对校验请求进行时间校验,当校验请求通过签名校验时,判断校验请求通过有效性校验。
在另一种情形中,本申请实施例可以对校验请求进行时间校验和签名校验,当校验请求通过时间校验和签名校验时,判断校验请求通过有效性校验。
当然,本申请实施例可以先对校验请求进行时间校验再对校验请求进行签名校验,若时间校验不通过,判断校验请求未通过有效性校验,则不需要对校验请求进行签名校验;也可以先对校验请求进行签名校验再对校验请求进行时间校验,若校验请求未通过签名校验,判断校验请求未通过有效性校验,则不需要对校验请求进行时间校验。
当然,上述有效性校验只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他有效性校验,本申请实施例对此不加以限制。另外,除了上述有效性校验外,本领域技术人员还可以根据实际需要采用其它有效性校验,本申请实施例对此也不加以限制。
子步骤S32,当所述校验请求通过所述有效性校验时,校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同;
当通过校验请求的有效性校验时,可以表示该校验请求是由第一服务器发送的且不经过篡改的,第二服务器可以校验第一字符串与第一密码是否相同。
在本申请的一种优选实施例中,子步骤S32可以包括以下子步骤:
子步骤S321,对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串;
在具体实现中,与子步骤S11相对应地,第二服务器可以对第一密文进行解密处理,获取明文形式的第一用户标识和第一字符串。
在本申请实施例的一种优选示例中,子步骤S321可以包括以下子步骤:
子步骤S3211,采用所述目标密钥对所述第一密文进行解密,获得所述第一用户标识和所述第一字符串。
在本示例中,与子步骤S111相对应地,第二服务器可以采用对称加密的方式进行第二解密处理。
在具体实现中,第二服务器可以采用在先约定的目标密钥和解密的算法进行解密。
当然,本申请实施例还可以采用其他方式,例如非对称加密,进行解密处理,本申请实施例对此也不加以限制。
子步骤S322,查找与所述第一用户标识关联的第二用户标识;
第二用户标识可以为能够代表一个在第二服务器中唯一确定的用户的信息,可以包括用户账号、与用户账号绑定的信息中的至少一种;而与用户账号绑定的信息可以包括如下至少一种:
其他用户账号、邮箱、电话号码、名称。
在具体实现中,第一用户标识和第二用户标识在相同、相似或相互绑定时,可以认为存在关联关系,可以表明该第一用户标识和该第二用户标识标识同一个用户。
例如,若作为第一用户标识的用户账号为abc,作为第二用户标识的用户账号为abc或者abc_001等,则可以认为第一用户标识和第二用户标识存在关联。
又例如,若作为第一用户标识的用户账号与第二用户标识的用户账号为相互绑定的账号,则可以认为第一用户标识和第二用户标识存在关联。
又例如,若作为第一用户标识的邮箱为abc@abc.com,作为第二用户标识的邮箱为abc@abc.com,则可以认为第一用户标识和第二用户标识存在关联。
需要说明的是,本申请实施例可以采用一个用户标识、两个用户标识甚至更多的用户标识进行关联性判断,以提高第一用户标识和第二用户标识关联判断的准确性。
其中,所述第二用户标识具有关联的第一密码,该第一密码可以包括账号密码和独立密码中的至少一个。
当第一字符串请求设置为账户密码时,则可以提取第二用户标识对应的账户密码进行校验,当然,也可以提取第二用户标识对应的独立密码进行校验,本申请实施例对此不加以限制;
当第一字符串请求设置为独立密码时,则可以提取第二用户标识对应的独立密码进行校验,当然,也可以提取第二用户标识对应的账号密码进行校验,本申请实施例对此不加以限制。
子步骤S323,校验所述第一字符串与所述第一密码是否相同。
在实际应用中,若第一密码以明文的形式保存,则可以直接校验第一字符串与第一密码是否相同。
若第一密码以密文的形式保存,则可以将第一密码转换成明文的形式,校验第一字符串与明文形式的第一密码是否相同;也可以将第一字符串转换成密文的形式,校验密文形式的第一字符串与第一密码是否相同,本申请实施例对此不加以限制。
在本申请实施例的一种优选示例中,子步骤S323可以包括以下子步骤:
子步骤S3231,采用第一特征密钥对所述第一字符串进行加密,获得第二密文;
子步骤S3232,校验所述第二密文与第三密文是否相同;所述第三密文为采用所述第一特征密钥对所述第一密码加密所获得的密文;
子步骤S3233,当所述第二密文与所述第三密文相同时,判断所述第一字符串与所述第一密码相同;
子步骤S3234,当所述第二密文与所述第三密文相异时,判断所述第一字符串与所述第一密码相异。
在本示例中,第二服务器可以具有专属的加密密钥(即第一特征密钥),用以对第二网站中的密码进行加密,以密文的形式存储密码,以确保第二服务器中密码的安全性。
在具体实现中,第二服务器可以采用第一特征密钥,以与第三密文相同的加密方式对第一字符串加密,校验密文形式的第一字符串与密文形式的第一密码是否相同。
子步骤S33,当所述第一字符串与所述第一密码相同时,则将所述第一字符串与所述第一密码相同的信息设置为校验结果;
子步骤S34,当所述第一字符串与所述第一密码相异时,则将所述第一字符串与所述第一密码相异的信息设置为校验结果。
在具体实现中,当第一字符串与第一密码相同时,生成的校验结果可以包括第一字符串与第一密码相同的信息;当第一字符串与第一密码相异时,生成的校验结果可以包括第一字符串与第一密码相异的信息。
第二服务器校验第一字符串与第一密码是否相同,获得校验结果,把校验结果返回给第一服务器。
步骤105,当所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
当校验结果为第一字符串与第一密码相异的信息时,可以表示第一用户标识在第二服务器中没有存在与第一字符串相同的密码,第一服务器可以把第一字符串设置为第一用户标识在第一服务器中的第二密码。
在本申请的一种优选实施例中,所述第一字符串可以符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件可以为所述第一字符串满足预设的强度条件;
在具体实现中,第一服务器可以预设密码的强度条件,增强密码的安全性,降低“暴力破解”的几率,在用户输入的第一字符串满足强度条件时,允许将第一字符串设置为密码。
例如,第一服务器可以设定第一字符串的长度,如可以设定第一字符串的长度需要为8位或8位以上,如果第一字符串的位数没有满足长度要求(如第一字符串为7位),第一服务器可以提示用户输入的第一字符串不满足强渡要求,需要重新输入。
第一服务器也可以设定用户输入的第一字符串需要由数字、字符和英文字母(包括大小写)中的至少一个组合,假设该第一字符串需要由数字和英文字符组合,若第一字符串由纯数字或纯英文字母组成,则第一服务器可以提示用户输入的第一字符串不符合强度要求,需要重新输入。
当然,上述强度条件只是作为示例,在实施本申请实施例时,本领域技术人员根据实际需要设置其他的强度条件,本申请实施例对此不加以限制。
所述第二条件可以为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
在非首次设置密码的情况中,第一用户标识可能在第一服务器中在先存在至少一个密码,为了进一步增强密码的安全性,避免在先密码的泄露对当前的密码造成安全隐患,第一服务器可以设定用户在设置密码时,输入的第一字符串不能够与在先存在的密码相同,具体可以包括前一个密码或者某一段时间内的密码,本申请实施例对此不加以限制。
若用户输入的第一字符串与在先存在的密码相同,第一服务器可以提示用户该第一字符串已经存在,需要重新输入。
需要说明的是,本申请实施例中可以在第一字符串设置为密码之前的任意时刻进行第一字符串是否符合第一条件和第二条件的判断。
例如,可以在发送校验请求之前进行第一字符串是否符合第一条件的判断,在获得校验结果之后进行第一字符串是否符合第二条件的判断。
又例如,可以在发送校验请求之前进行第一字符串是否符合第一条件和第二条件的判断。
又例如,可以在获得校验结果之后进行第一字符串是否符合第一条件和第二条件的判断,等等,本申请实施例对此不加以限制。
本申请实施例中,第一服务器根据密码的设置请求中的第一用户标识和第一密码生成校验请求,请求一个或多个第二服务器进行是否存在相同密码的校验,当第一服务器接收到第一字符串与第一用户标识在第二服务器中对应的第一密码相异的校验结果时,把第一字符串设置为第一用户标识在第一服务器中的第二密码,进而确保同一用户不会在不同的服务器中设置相同的密码,提高了密码的强度,大大降低了用户在某个服务器中的账号和密码泄露时对当前服务器中的账号和密码的影响,进而提高了用户个人信息的安全性。
在第一服务器和第二服务器的交互过程中,第二服务器并不需要知道第一服务器的第二特征密钥,第一服务器也无不需要第二服务器的第一特征密钥,第一服务器和第二服务器依然各自维护自己的特征密钥,保证了特征密钥的隐私性。
在本申请的一种优选实施例中,所述的方法还可以包括以下步骤:
步骤106,当所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
在本申请实施例中,当第一服务器接收到的校验结果是第一字符串与第一密码相同时,可以表示第二服务器中存在与第一字符串相同的密码,第一服务器可以生成提示用户重新设置密码的信息,提示用户需要重新设置密码。
在本申请的一种优选实施例中,所述的方法还可以包括以下步骤:
步骤107,采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;
步骤108,将所述第四密文存储在数据库中。
在本申请实施例中,第一服务器可以具有专属于的加密密钥(即第二特征密钥),第一服务器可以采用第二特征密钥对第二密码进行加密,生成第四密文,把第二密码以密文的形式存储在数据库中,保证了密码的安全性。
参照图2,示出了本申请的一种密码的设置方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤201,在第二服务器中接收由第一服务器发送的校验请求;所述校验请求为所述第一服务器在接收到密码的设置请求时,根据所述设置请求中的第一用户标识和第一字符串生成的校验请求;
在本申请的一种优选实施例中,所述设置请求可以包括第一用户标识和第一字符串;则第一服务器可以通过以下步骤生成校验请求:
子步骤S41,对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
在本申请的一种优选实施例中,子步骤S41可以包括以下子步骤:
子步骤S411,采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
子步骤S42,对所述第一密文进行第二加密处理,获得数字签名;
在本申请的一种优选实施例中,子步骤S42可以包括以下子步骤:
子步骤S421,采用指定的私钥对所述第一密文进行加密,获得数字签名。
子步骤S43,将所述第一密文和所述数字签名封装进校验请求中。
在本申请的一种优选实施例中,所述校验请求由所述第一服务器通过指定的加密传输方式发送。
步骤202,根据所述校验请求获得校验结果;
所述校验结果可以为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
在本申请的一种优选实施例中,步骤202可以包括以下子步骤:
子步骤S51,对所述校验请求进行有效性校验;所述有效性校验可以包括时间校验和签名校验中的至少一种;
在本申请的一种优选实施例中,所述校验请求可以包括第一时间戳;所述第二服务器可以具有第二时间戳;子步骤S51可以包括以下子步骤:
子步骤S511,计算所述第一时间戳与所述第二时间戳的差值;
子步骤S512,当所述差值在预设的时间阈值内时,判断所述校验请求通过时间校验。
在本申请的一种优选实施例中,子步骤S51可以包括以下子步骤:
子步骤S513,对所述第一密文进行第三加密处理,获得第二字符串;
子步骤S514,当所述第二字符串与所述数字签名相同时,判断所述校验请求通过签名校验。
在本申请的一种优选实施例中,子步骤S513可以包括以下子步骤:
子步骤S5131,采用指定的公钥对所述第一密文进行加密,获得第二字符串。
子步骤S52,当所述校验请求通过所述有效性校验时,校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同;
在本申请的一种优选实施例中,子步骤S52可以包括以下子步骤:
子步骤S521,对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串;
在本申请的一种优选实施例中,子步骤S521可以包括以下子步骤:
子步骤S5211,采用所述目标密钥对所述第一密文进行解密,获得所述第一用户标识和所述第一字符串。
子步骤S522,查找与所述第一用户标识关联的第二用户标识;所述第二用户标识具有关联的第一密码;
子步骤S523,校验所述第一字符串与所述第一密码是否相同。
在本申请的一种优选实施例中,子步骤S53可以包括以下子步骤:
子步骤S531,采用第一特征密钥对所述第一字符串进行加密,获得第二密文;
子步骤S532,校验所述第二密文与第三密文是否相同;所述第三密文为采用所述第一特征密钥对所述第一密码加密所获得的密文;
子步骤S533,当所述第二密文与所述第三密文相同时,判断所述第一字符串与所述第一密码相同;
子步骤S534,当所述第二密文与所述第三密文相异时,判断所述第一字符串与所述第一密码相异。
子步骤S53,当所述第一字符串与所述第一密码相同时,将所述第一字符串与所述第一密码相同的信息设置为校验结果;
子步骤S54,当所述第一字符串与所述第一密码相异时,将所述第一字符串与所述第一密码相异的信息设置为校验结果。
步骤203,将所述校验结果返回所述第一服务器;
在具体实现中,所述第一服务器可以用于在所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
在本申请的一种优选实施例中,所述第一字符串可以符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件可以为所述第一字符串满足预设的强度条件;
所述第二条件可以为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
在本申请的一种优选实施例中,所述第一服务器还用于在所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
在本申请的一种优选实施例中,所述第一服务器还用于采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;将所述第四密文存储在数据库中。
在本申请实施例中,由于与方法实施例1的应用基本相似,所以描述的比较简单,相关之处参见方法实施例1的部分说明即可,本申请实施例在此不加以详述。
为使本领域技术人员更好地理解本申请实施例,以下通过具体示例进行说明。
某用户在第一服务器中的用户名为SkyWen(第一用户标识),原密码为cba321,现请求把abc123(第一字符串)设置为对应的密码,则第一服务器可以请求第二服务器进行密码校验。
第一服务器接收到用户输入的SkyWen和abc123,第一服务器可以采用预先与第二服务器约定的密钥UJHUSHUY(目标密钥)对SkyWen和abc123进行加密,加密后的用户名SkyWen为AAB76115CB4379D0(第一密文),加密后的字符串abc123为D559B76EEE41C613(第一密文)。
第一服务器可以与第二服务器预先约定好生产数字签名的私钥RSA私钥(指定私钥)和验证数字签名的公钥RSA公钥(指定公钥)。
约定的RSA私钥如下:
<RSAKeyValue><Modulus>14WXrrULUY/x1CilapBr1l5CQIjG8IxFAP7upJPIPsObgeO8YhzGApYh+7U6qXvYbkvu6C901NSOwRMWpjKcpMx4/ZwdX4jDlgaV6uD6JtNUNzpHtYcrZ60SJgnKtD9vIoQKo75P1C8/OBm1FA/Ei6mTWfuydHwNYDoPh0aW1E0=</Modulus><Exponent>AQAB</Exponent><P>9tHYz/hssi0jFuNUQQdqCytp8JBiJsT2nnmWaiQh5fKpIxRP2h6YNuuWqnVQR53NLrJhv6vwE45SaCL8J7CC/w==</P><Q>34m8ROF4PtXkpkpazxYIpOLPixWuMm+rWVW6XzOb/wA5McFnsUNNqY091uaxs5gd/bnJQXr4rkzT1Kw1/iDEsw==</Q><DP>ZuuaPR6aNLIdr62btIIi9gVkZ6vNQd1f+TU6Q4hNmlVVsgsGQS4AyuXyLaI9l591r8Myf3py4bS3KDVucB5qgQ==</DP><DQ>BFsNtRXjnu3SB795J4HZZ0UYIDCq9Uahwxrdh89cocpiUure12BlWgFrjA1wtvwm0XPWTRVVVSggFIvKfYor6w==</DQ><InverseQ>FhUOBx2YvqX18lsF4t8ox6QX7nMfd4cV4Fd7p1BLheyVbABaTbHllhwRVpArM5qeZmRqsN3iX15DS1FEEpDamw==</InverseQ><D>bbj4qRxIv+RttJpg5KjUDdX9GsfHqG1xL/mZ2zXVi4agY/diT/zgHi767B+u1txTKowD/Dc03qm8Z7VlIYXA0wJDpJTAmOgrQwVCSLmjsx4GIxHrT6Hf8XW/qbvfC2azvSWLZvjiwyFdxRSpvBe1KSWuTi+F3cQUkAtLtksx580=</D></RSAKeyValue>
约定的RSA公钥如下:
<RSAKeyValue><Modulus>14WXrrULUY/x1CilapBr1l5CQIjG8IxFAP7upJPIPsObgeO8YhzGApYh+7U6qXvYbkvu6C901NSOwRMWpjKcpMx4/ZwdX4jDlgaV6uD6JtNUNzpHtYcrZ60SJgnKtD9vIoQKo75P1C8/OBm1FA/Ei6mTWfuydHwNYDoPh0aW1E0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
第一服务器可以利用RSA私钥对AAB76115CB4379D0和D559B76EEE41C613进而再次加密,生成数字签名,生成的数字签名如下:
B866CC139585766D95E0BD75B53EF3E4A81CF4509D7066A2D62FDD03F8BA21AF6062C0B734C4FBBA5787496B3F4A63FBAD08C640F919DA71F30CC53C93B859C32D4DB81AE714717DDF9564E4D5DD25868B48ACC0748E15F2BB562411B419C6032D11050C1C47669606A65413885CB0A1C41422B9B045A29CF22B02CDB10A4C98
第一服务器可以将加密后的用户名、加密后的第一字符串和数字签名封装,生成校验请求。
第一服务器向第二服务器发送校验请求时,可以将发送校验请求时的时间戳1407394800082添加到URL中,封装进校验请求。
第一服务器可以通过HTTPS协议将校验请求发送给第二服务器,其中,生成的URL如下:
https://xxxx.com/xxx.do?sign=B866CC139585766D95E0BD75B53EF3E4A81CF4509D7066A2D62FDD03F8BA21AF6062C0B734C4FBBA5787496B3F4A63FBAD08C640F919DA71F30CC53C93B859C32D4DB81AE714717DDF9564E4D5DD25868B48ACC0748E15F2BB562411B419C6032D11050C1C47669606A65413885CB0A1C41422B9B045A29CF22B02CDB10A4C98&user_name=AAB76115CB4379D0&user_pass=D559B76EEE41C613&request_time=1407394800082
第二服务器接收到第一服务器发送的校验请求时,可以利用System.currentTimeMillis()方法获得本地系统的时间戳A,时间戳A表示第二服务器接收到校验请求的时间。
第二服务器可以预先设置一个时间阈值,如设置的时间阈值为30s。
那么,当A-1407394800082<30,则表明校验请求通过时间校验。
时间校验通过后,利用RSA公钥加密AAB76115CB4379D0和D559B76EEE41C613,生成的字符串如下:
B866CC139585766D95E0BD75B53EF3E4A81CF4509D7066A2D62FDD03F8BA21AF6062C0B734C4FBBA5787496B3F4A63FBAD08C640F919DA71F30CC53C93B859C32D4DB81AE714717DDF9564E4D5DD25868B48ACC0748E15F2BB562411B419C6032D11050C1C47669606A65413885CB0A1C41422B9B045A29CF22B02CDB10A4C98
第二服务器通过比较利用RSA私钥生成的数字签名与利用RSA公钥生成的字符串相同,则可以表示校验请求确实由第一服务器发送过来的且不经过篡改的。
第二服务器可以利用密钥UJHUSHUY对AAB76115CB4379D0和D559B76EEE41C613进行解密,得到用户名SkyWen和字符串abc1213。
第二服务器检测数据库中是否存在与SkyWen一致的用户名,如果不存在,则返回第一服务器服务器不存在用户名SkyWen的结果,第一服务器服务器可以将abc123设置为用户名SkyWen对应的密码,并利用第一服务器自己独有的密钥对abc123加密,生成密文,把密文存储在数据库中。
如果第二服务器检测到数据库中存在用户名SkyWen,可以利用第二服务器独有的密钥LJHJGUUG加密abc123,并将加密后的abc123与数据库中SkyWen的密码进行对比,若加密后的abc123和SkyWen的密码相同,返回第一服务器已经在第二服务器存在相同的密码的结果,第一服务器提示用户重新设置密码。
若加密后的abc123和SkyWen的密码不相同,返回第一服务器在第二服务器不存在相同的密码的结果。
若第一服务器设定设置为密码的字符串的长度需要6位或6位以上,且,包括至少一个英文字母和一个数字,则abc123符合该强度要求。
若第一服务器设定设置为密码的字符串与在先的密码不相同,而abc123与cba321不相同,符合该要求。
第一服务器可以将abc123设置为用户名SkyWen对应的密码,并利用第一服务器自己独有的密钥对abc123加密,生成密文,把密文存储在数据库中。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请一种密码的设置装置实施例1的结构框图,具体可以包括如下模块:
设置请求接收模块301,用于在第一服务器中接收密码的设置请求;所述设置请求包括第一用户标识和第一字符串;
校验请求生成模块302,用于根据所述第一用户标识和所述第一字符串生成校验请求;
校验请求生发送模块303,用于将所述校验请求发送至一个或多个第二服务器;
校验结果接收模块304,用于接收所述一个或多个第二服务器返回的,根据所述校验请求获得的校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
密码设置模块305,用于当所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
在本申请的一种优选实施例中,所述校验请求生成模块302可以包括如下子模块:
第一密文获得子模块,用于对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
数字签名获得子模块,用于对所述第一密文进行第二加密处理,获得数字签名;
封装子模块,用于将所述第一密文和所述数字签名封装进校验请求中。
在本申请的一种优选实施例中,所述第一密文获得模块可以包括以下子模块:
对称加密子模块,用于采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
在本申请的一种优选实施例中,所述数字签名获得模块可以包括以下子模块:
第一非对称加密子模块,用于采用指定的私钥对所述第一密文进行加密,获得数字签名。
在本申请的一种优选实施例中,所述校验请求生发送模块可以包括以下子模块:
加密传输子模块,用于通过指定的加密传输方式将所述校验请求发送至一个或多个第二服务器。
在本申请的一种优选实施例中,所述一个或多个第二服务器可以通过以下方式获得校验结果:
对所述校验请求进行有效性校验;所述有效性校验可以包括时间校验和签名校验中的至少一种;
当所述校验请求通过所述有效性校验时,校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同;
当所述第一字符串与所述第一密码相同时,将所述第一字符串与所述第一密码相同的信息设置为校验结果;
当所述第一字符串与所述第一密码相异时,将所述第一字符串与所述第一密码相异的信息设置为校验结果。
在本申请的一种优选实施例中,所述校验请求可以包括第一时间戳;所述第二服务器可以具有第二时间戳;所述一个或多个第二服务器可以通过以下方式对所述校验请求进行有效性校验:
计算所述第一时间戳与所述第二时间戳的差值;
当所述差值在预设的时间阈值内时,判断所述校验请求通过时间校验。
在本申请的一种优选实施例中,所述一个或多个第二服务器可以通过以下方式对所述校验请求进行有效性校验:
对所述第一密文进行第三加密处理,获得第二字符串;
当所述第二字符串与所述数字签名相同时,判断所述校验请求通过签名校验。
在本申请的一种优选实施例中,所述一个或多个第二服务器可以通过以下方式获得第二字符串:
采用指定的公钥对所述第一密文进行加密,获得第二字符串。
在本申请的一种优选实施例中,所述一个或多个第二服务器可以通过以下方式校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同:
对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串;
查找与所述第一用户标识关联的第二用户标识;所述第二用户标识具有关联的第一密码;
校验所述第一字符串与所述第一密码是否相同。
在本申请的一种优选实施例中,所述一个或多个第二服务器可以通过以下方式对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串:
采用所述目标密钥对所述第一密文进行解密,获得所述第一用户标识和所述第一字符串。
在本申请的一种优选实施例中,所述一个或多个第二服务器可以通过以下方式校验所述第一字符串与所述第一密码是否相同:
采用第一特征密钥对所述第一字符串进行加密,获得第二密文;
校验所述第二密文与第三密文是否相同;所述第三密文为采用所述第一特征密钥对所述第一密码加密所获得的密文;
当所述第二密文与所述第三密文相同时,判断所述第一字符串与所述第一密码相同;
当所述第二密文与所述第三密文相异时,判断所述第一字符串与所述第一密码相异。
在本申请的一种优选实施例中,所述第一字符串可以符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件为所述第一字符串满足预设的强度条件;
所述第二条件为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
在本申请的一种优选实施例中,所述装置还可以包括:
提示信息生成模块,当所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
在本申请的一种优选实施例中,所述装置还可以包括:
第四密文获得模块,用于采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;
存储模块,用于将所述第四密文存储在数据库中。
参照图4,示出了本申请一种密码的设置装置实施例2的结构框图,具体可以包括如下模块:
校验请求接收模块401,校验请求接收模块,用于在第二服务器中接收由第一服务器发送的校验请求;所述校验请求为所述第一服务器在接收到密码的设置请求时,根据所述设置请求中的第一用户标识和第一字符串生成的校验请求;
校验结果获得模块402,校验结果获得模块,用于根据所述校验请求获得校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;
校验结果返回模块403,用于将所述校验结果返回所述第一服务器;
在具体实现中,所述第一服务器可以用于所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
在本申请的一种优选实施例中,所述设置请求可以包括第一用户标识和第一字符串;则第一服务器可以通过以下方式生成校验请求:
对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
对所述第一密文进行第二加密处理,获得数字签名;
将所述第一密文和所述数字签名封装进校验请求中。
在本申请的一种优选实施例中,所述校验请求可以通过以下方式发送:
通过指定的加密传输方式将所述校验请求发送至一个或多个第二服务器。
在本申请的一种优选实施例中,第一服务器可以通过以下方式获得第一密文:
采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
在本申请的一种优选实施例中,第一服务器可以通过以下方式获得数字签名:
采用指定的私钥对所述第一密文进行加密,获得数字签名。
在本申请的一种优选实施例中,第一服务器可以通过以下方式发送校验请求:
通过指定的加密传输方式将所述校验请求发送至一个或多个第二服务器。
在本申请的一种优选实施例中,所述校验结果获得模块402可以包括以下子模块:
有效性校验子模块,用于对所述校验请求进行有效性校验;所述有效性校验包括时间校验和签名校验中的至少一种;
第一校验子模块,用于当所述校验请求通过所述有效性校验时,校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同;
第一校验结果设置子模块,用于当所述第一字符串与所述第一密码相同时,将所述第一字符串与所述第一密码相同的信息设置为校验结果;
第二校验结果设置子模块,用于当所述第一字符串与所述第一密码相异时,将所述第一字符串与所述第一密码相异的信息设置为校验结果。
在本申请的一种优选实施例中,所述校验请求可以包括第一时间戳;所述第二服务器可以具有第二时间戳;所述有效性校验子模块可以包括以下子模块:
时间戳差值计算子模块,用于计算所述第一时间戳与所述第二时间戳的差值;
第一判断子模块,用于当所述差值在预设的时间阈值内时,判断所述校验请求通过时间校验。
在本申请的一种优选实施例中,所述有效性校验子模块可以包括以下子模块:
第二字符串获得子模块,用于对所述第一密文进行第三加密处理,获得第二字符串;
第二判断子模块,用于当所述第二字符串与所述数字签名相同时,判断所述校验请求通过签名校验。
在本申请的一种优选实施例中,所述第二字符串获得子模块可以包括以下子模块:
第二非对称加密子模块,用于采用指定的公钥对所述第一密文进行加密,获得第二字符串。
在本申请的一种优选实施例中,所述第一校验模块可以包括以下子模块:
第一密文加密子模块,用于对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串;
查找子模块,用于查找与所述第一用户标识关联的第二用户标识;所述第二用户标识具有关联的第一密码;
第二校验子模块,用于校验所述第一字符串与所述第一密码是否相同。
在本申请的一种优选实施例中,所述第一密文加密子模块可以包括以下子模块:
对称解密子模块,用于采用所述目标密钥对所述第一密文进行解密,获得所述第一用户标识和所述第一字符串。
在本申请的一种优选实施例中,所述第二校验模块可以包括以下子模块:
第二密文获得子模块,用于采用第一特征密钥对所述第一字符串进行加密,获得第二密文;
第三校验子模块,用于校验所述第二密文与第三密文是否相同;所述第三密文为采用所述第一特征密钥对所述第一密码加密所获得的密文;
第三判断子模块,用于当所述第二密文与所述第三密文相同时,判断所述第一字符串与所述第一密码相同;
第四判断子模块,用于当所述第二密文与所述第三密文相异时,判断所述第一字符串与所述第一密码相异。
在本申请的一种优选实施例中,所述第一字符串符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件为所述第一字符串满足预设的强度条件;
所述第二条件为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
在本申请的一种优选实施例中,所述第一服务器可以通过以下方式生成重新设置密码的提示信息:
当所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
在本申请的一种优选实施例中,所述第一服务器可以通过以下方式将所述第四密文存储在数据库中:
采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;
将所述第四密文存储在数据库中。
参照图5,示出了本申请一种密码设置的系统实施例的结构框图,所述包括第一服务器510和第二服务器520;
其中,所述第一服务器510可以包括:
设置请求接收模块511,用于在第一服务器中接收密码的设置请求;所述设置请求包括第一用户标识和第一字符串;
校验请求生成模块512,用于根据所述第一用户标识和所述第一字符串生成校验请求;
校验请求生发送模块513,用于将所述校验请求发送至一个或多个第二服务器;
校验结果接收模块514,用于接收所述一个或多个第二服务器返回的,根据所述校验请求获得的校验结果;
密码设置模块515,用于当所述校验结果为所述第一字符串与所述第一密码相异时,将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码;
所述一个或多个第二服务器520可以包括:
校验请求接收模块521,用于在第二服务器中接收由第一服务器发送的校验请求;所述校验请求为所述第一服务器在接收到密码的设置请求时,根据所述设置请求中的第一用户标识和第一字符串生成的校验请求;
校验结果获得模块522,用于根据所述校验请求获得校验结果;所述校验结果为校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同所获得的结果;所述校验结果包括所述第一字符串与所述第一密码相异;
校验结果返回模块523,用于将所述校验结果返回所述第一服务器;所述第一服务器用于将所述第一字符串设置为所述第一用户标识在所述第一服务器中的第二密码。
在本申请的一种优选实施例中,所述校验请求生成模块512可以包括以下子模块:
第一密文获得子模块,用于对所述第一用户标识和所述第一字符串进行第一加密处理,获得第一密文;
数字签名获得子模块,用于对所述第一密文进行第二加密处理,获得数字签名;
封装子模块,用于将所述第一密文和所述数字签名封装进校验请求中。
在本申请的一种优选实施例中,所述第一密文获得子模块可以包括以下子模块:
对称加密子模块,用于采用与所述一个或多个第二服务器对应的目标密钥对所述第一用户标识和所述第一字符串进行加密,获得第一密文。
在本申请的一种优选实施例中,所述数字签名获得子模块可以包括以下子模块:
第一非对称加密子模块,用于采用指定的私钥对所述第一密文进行加密,获得数字签名。
在本申请的一种优选实施例中,所述校验请求生发送模块513可以包括以下子模块:
加密传输子模块,用于通过指定的加密传输方式将所述校验请求发送至一个或多个第二服务器。
在本申请的一种优选实施例中,所述第一字符串符合第一条件和第二条件中的至少一个条件;
其中,所述第一条件为所述第一字符串满足预设的强度条件;
所述第二条件为所述第一字符串与所述第一用户标识在所述第一服务器中在先的第二密码相异。
在本申请的一种优选实施例中,所述第一服务器510还可以包括:
提示信息生成模块,当所述校验结果为所述第一字符串与所述第一密码相同时,生成重新设置密码的提示信息。
在本申请的一种优选实施例中,所述第一服务器510还可以包括:
第四密文获得模块,用于采用所述第二特征密钥对所述第二密码进行加密,获得第四密文;
存储模块,用于将所述第四密文存储在数据库中。
在本申请的一种优选实施例中,所述校验结果获得模块522可以包括以下子模块:
有效性校验子模块,用于对所述校验请求进行有效性校验;所述有效性校验包括时间校验和签名校验中的至少一种;
第一校验子模块,用于当所述校验请求通过所述有效性校验时,校验所述第一字符串与所述第一用户标识在所述第二服务器中对应的第一密码是否相同;
第一校验结果设置子模块,用于当所述第一字符串与所述第一密码相同时,将所述第一字符串与所述第一密码相同的信息设置为校验结果;
第二校验结果设置子模块,用于当所述第一字符串与所述第一密码相异时,将所述第一字符串与所述第一密码相异的信息设置为校验结果。
在本申请的一种优选实施例中,所述校验请求可以包括第一时间戳;所述第二服务器可以具有第二时间戳;所述有效性校验子模块可以包括以下子模块:
时间戳差值计算子模块,用于计算所述第一时间戳与所述第二时间戳的差值;
第一判断子模块,用于当所述差值在预设的时间阈值内时,判断所述校验请求通过时间校验。
在本申请的一种优选实施例中,所述有效性校验子模块可以包括以下子模块:
第二字符串获得子模块,用于对所述第一密文进行第三加密处理,获得第二字符串;
第二判断子模块,用于当所述第二字符串与所述数字签名相同时,判断所述校验请求通过签名校验。
在本申请的一种优选实施例中,所述第二字符串获得子模块可以包括以下子模块:
第二非对称加密子模块,用于采用指定的公钥对所述第一密文进行加密,获得第二字符串。
在本申请的一种优选实施例中,所述第一校验模块可以包括以下子模块:
第一密文加密子模块,用于对所述第一密文进行解密处理,获得所述第一用户标识和所述第一字符串;
查找子模块,用于查找与所述第一用户标识关联的第二用户标识;所述第二用户标识具有关联的第一密码;
第二校验子模块,用于校验所述第一字符串与所述第一密码是否相同。
在本申请的一种优选实施例中,所述第一密文加密子模块可以包括以下子模块:
对称解密子模块,用于采用所述目标密钥对所述第一密文进行解密,获得所述第一用户标识和所述第一字符串。
在本申请的一种优选实施例中,所述第二校验模块可以包括以下子模块:
第二密文获得子模块,用于采用第一特征密钥对所述第一字符串进行加密,获得第二密文;
第三校验子模块,用于校验所述第二密文与第三密文是否相同;所述第三密文为采用所述第一特征密钥对所述第一密码加密所获得的密文;
第三判断子模块,用于当所述第二密文与所述第三密文相同时,判断所述第一字符串与所述第一密码相同;
第四判断子模块,用于当所述第二密文与所述第三密文相异时,判断所述第一字符串与所述第一密码相异。
对于装置、系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种密码的设置方法、一种密码的设置装置和一种密码的设置系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。