本发明涉及物联网,尤其涉及一种密码认证方法、装置、存储介质和程序产品。
背景技术:
1、现如今,加密技术在信息安全保护中具有非常重要的优势,加密技术在各种领域中都有所应用,有利于保护隐私安全。
2、作为举例,智能门锁是加密技术的一种应用场景。现有的智能门锁可以通过指纹、人脸、卡片、数字密码等多种方式开锁,如果通过网络将智能门锁设备与云端后台服务实现通信,便可以人为控制后台服务下发指纹、人脸、卡片、数字密码等钥匙给智能门锁,实现管理员远程对门锁的管控能力。如果设备和云端后台的网络断了,则管理员下发的钥匙则无法到达设备,导致开锁失败。此时要开锁可以通过机械钥匙开锁,或者基于otp生成的一次性密码,管理员在平台生成一次性密码下发给用户端,设备侧基于和平台一样的规则生成otp密码,这样平台和设备便会同时生成相同的动态口令,用户便可成功开锁。
3、然而,发明人发现现有技术至少存在如下问题:机械钥匙需要存储和查找,且需要人工操作设备进行打开,开锁过程较为繁琐。现有的otp密码的生成过程中,通常结合了计数器或当前时间来实现生成动态口令的效果,这从概率上存在设备端和平台生成的动态口令步调不一致的可能性,导致用户无法认证成功。
技术实现思路
1、本发明实施例的目的是提供一种密码认证方法、装置、存储介质和程序产品,其能够使得生成的认证密码具备一次使用的特性,又有一定的容错范围,既能保证正常开锁,也能防止密码泄露带来的隐患。
2、为实现上述目的,本发明实施例提供了一种密码认证方法,应用于设备端,所述方法包括:
3、生成第一认证密码;其中,所述第一认证密码是由第一动态口令、第一计数值和第一可变范围值组成的字符串;
4、接收用户端发送的由服务端生成的第二认证密码;其中,所述第二认证密码是由第二动态口令、第二计数值和第二可变范围值组成的字符串;
5、当所述第一动态口令和所述第二动态口令相同,所述第一可变范围值和所述第二可变范围值相同,且所述第一计数值和所述第二计数值的差值小于等于所述第一可变范围值时,判定密码认证通过。
6、作为上述方案的改进,所述第一动态口令和所述第二动态口令是根据预设的一次性密码生成规则生成的。
7、作为上述方案的改进,所述预设的一次性密码生成规则为:
8、根据预设的秘钥串和时间参数,采用预设的加密算法生成密码字符串,作为动态口令;或者,
9、根据预设的秘钥串和时间参数,采用预设的加密算法生成密码字符串;采用预设的截取函数,在所述密码字符串中截取特定位置的字符串,生成动态口令。
10、作为上述方案的改进,所述时间参数为当前时间和预设的时间间隔的比值。
11、作为上述方案的改进,所述第一计数值和所述第二计数值从0开始累计,在每次密码认证通过后加一。
12、作为上述方案的改进,所述第一可变范围值和所述第二可变范围值为所述设备端和所述服务端预先协商设置的。
13、作为上述方案的改进,所述方法还包括:
14、当所述第一动态口令和所述第二动态口令不相同,或所述第一可变范围值和所述第二可变范围值不相同,或所述第一计数值和所述第二计数值的差值大于所述第一可变范围值时,判定密码认证不通过。
15、本发明实施例还提供了一种密码认证方法,应用于服务端,所述方法包括:
16、生成第二认证密码;其中,所述第二认证密码是由第二动态口令、第二计数值和第二可变范围值组成的字符串;
17、将所述第二认证密码发给用户端,以使所述用户端将所述第二认证密码发送给设备端进行密码认证;其中,所述密码认证过程为:所述设备端生成由第一动态口令、第一计数值和第一可变范围值组成的第一认证密码,当所述第一动态口令和所述第二动态口令相同,所述第一可变范围值和所述第二可变范围值相同,且所述第一计数值和所述第二计数值的差值小于等于所述第一可变范围值时,判定密码认证通过。
18、本发明实施例还提供了一种密码认证方法,应用于用户端,所述方法包括:
19、接收服务端发送的第二认证密码;其中,所述第二认证密码是由第二动态口令、第二计数值和第二可变范围值组成的字符串;
20、将所述第二认证密码发送给设备端进行密码认证;其中,所述密码认证过程为:所述设备端生成由第一动态口令、第一计数值和第一可变范围值组成的第一认证密码,当所述第一动态口令和所述第二动态口令相同,所述第一可变范围值和所述第二可变范围值相同,且所述第一计数值和所述第二计数值的差值小于等于所述第一可变范围值时,判定密码认证通过。
21、本发明实施例还提供了一种密码认证装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的密码认证方法。
22、本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的密码认证方法。
23、本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令被处理器执行时实现如上述任意一项所述的密码认证方法。
24、与现有技术相比,本发明公开的密码认证方法、装置、存储介质和程序产品,对认证密码的生成方式和认证手段进行优化,认证密码由动态口令、计数值和可变范围值的引入,通过对动态口令和计数值的设计,使得密码具有动态性和一次使用性,从而提高密码的安全有效性,通过可变范围值的引入,确定计数值的可变化范围,推出允许用户输入的认证密码的变化范围,使得对设备端和服务端的计数值不一致的情况有了一定的容错范围,有效避免设备端和服务端的计数值步调不一致导致无法认证成功的情况,既能保证正常开锁,也能防止密码泄露带来的隐患。
1.一种密码认证方法,其特征在于,应用于设备端,所述方法包括:
2.如权利要求1所述的密码认证方法,其特征在于,所述第一动态口令和所述第二动态口令是根据预设的一次性密码生成规则生成的。
3.如权利要求1所述的密码认证方法,其特征在于,所述预设的一次性密码生成规则为:
4.如权利要求3所述的密码认证方法,其特征在于,所述时间参数为当前时间和预设的时间间隔的比值。
5.如权利要求1所述的密码认证方法,其特征在于,所述第一计数值和所述第二计数值从0开始累计,在每次密码认证通过后加一。
6.如权利要求1所述的密码认证方法,其特征在于,所述第一可变范围值和所述第二可变范围值为所述设备端和所述服务端预先协商设置的。
7.如权利要求1至6任一项所述的密码认证方法,其特征在于,所述方法还包括:
8.一种密码认证方法,其特征在于,应用于服务端,所述方法包括:
9.一种密码认证方法,其特征在于,应用于用户端,所述方法包括:
10.一种密码认证装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9中任意一项所述的密码认证方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至9中任意一项所述的密码认证方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令被处理器执行时实现如权利要求1至9中任意一项所述的密码认证方法。