纯软件动态密码的生成及其验证方法与流程

文档序号:12477506阅读:1093来源:国知局
纯软件动态密码的生成及其验证方法与流程

本发明涉及计算机软件技术等领域,更具体地是一种无需其他软、硬件辅助及存储的动态密码生成及其验证方法。



背景技术:

目前市场上常见的动态密码多为动态密码生成器,需要物理存储装置或在其他物理装置上安装软件,生成动态密码后输入至系统。这种技术方案使用繁琐、携带不方便、且丢失后无法使用,更换流程复杂,需要多方协助才能完成,另外应用范围及场景受到较大限制,不具有通用性。



技术实现要素:

本发明是为避免上述现有技术所存在的不足之处,提供一种无需其他软、硬件辅助及存储的动态密码的生成及其验证方法。

本发明解决技术问题所采用的技术方案是:

一种纯软件动态密码,它是采用固定密码段与共知变量相结合的方式,通过操作人对其进行位移、数值或字符进行简单运算,即可形成随共知变量的不同而即时变动的动态密码,同时软件系统按相同的规则进行运算,并与输入的动态密码进行比较,从而验证密码是否正确。

一种纯软件动态密码的生成方法,其具体步骤如下:

步骤S1、输入固定密码段,固定密码段时一定长度的字符串,系统接受输入的固定密码段字符,存入系统,变量记为G;

步骤S2、软件显示系统与操作者可共同认知的变量类型,供操作者选择,将这些变更类型分别记作变量Y、M、D、H、m、s、W、C、Z等;

步骤S3、对固定密码段G与变量Y、M、D、H、m、s、W、C、Z中的一项或几项进行位移或数值或字符计算与组合,并将动态密码计算公式输入系统并存储,记作M;

步骤S4、根据以下公式:

M=G1+int(H2/2)+G3+int(H1/2)+G2+G4+H1+G6+G5;

M=(G1G2)*m2+G3+G5+G6+G4;

M=G*s获得密码。

其中、G1、G2、G3…代表固定密码段字符串处在第1、2、3…位置的字符。H2、H1、m2代表共知变量H的第2位置的字符对应的数值、m的第2位置的字符对应的数值。int(H2/2)代表对H2字符对应的数值除以2商的取整后对应的字符。+代表字符串的相加。(G1G2)*m2表示G的前两位字符对应的数值乘以m第2位字符对应的数值之积对应的字符串。G*s表示G对应数值乘以s之积对应的字符串。

进一步,所述固定密码段字符长度为大于等于0的由数字、字母或相互组合而成的字符串。

进一步,所述步骤S2中的变量类型为年、月、日、时、分、秒、周,以及在一定时段内的操作的次数、操作者个人身份证号码或其他证件号码。(这里的证件号码是指系统中已存储的证件号码)。

本发明还公开了一纯软件动态密码的验证方法,其方法步骤如下:

步骤S1、操作人员将固定密码、登录系统当时的年、月、日、时、分、秒、周,以及在一定时段内的操作次数、操作者个人身份证号码或其他证件号码(这里的证件号码是指系统中已存储的证件号码)等具体数值代入公式M,得到动态密码的具体字符串M1后输入系统;

步骤S2、系统根据存储的固定密码段字符及存储的动态密码计算公式进行计算,得到系统计算的动态密码M2;

步骤S2、系统将输入的动态密码M1与系统计算动态密码M2进行比较,若两者相等,则完成密码的验证,进入系统,若两者不相等,则提示密码输入错误,请重新输入密码或退出系统。

上述的共知变量是指计算机系统中包含的,操作人员不依靠计算机软件也可获知,且在同一时间段或同一环境下,两者计算变量结果的值一致的变量,如年、月、日、时、分、秒、周,以及在一定时段内的操作的次数、操作者个人身份证号码或其他证件号码,也包括应用软件专属且与软件操作人有同一认知的变量。

与已有技术相比,本发明的有益效果体现在:

1)由于系统存储的是密码的一部分,即固定密码段,另一部分以公式的形式单独存储,从形式上看不出两者之间的关系,且登录系统时形成了与当时共知变量有关的动态密码,这样每次登录系统密码均不相同,增强了系统的安全性,避免了因输入密码时被偷窥、或硬件密钥遗失而泄密,避免了硬件密钥丢失带来的不便;另一方面不需其他软硬件装置存储与生成动态密码,降低了系统建造与使用成本。

2)本发明不需要密码生成器等物理装置,大大提高了系统的安全程度,使用简单、方便,避免了携带物理装置以及装置丢失带来的无法使用的风险,其运用只与软件系统有关,使用范围广泛,易于推广。

3)本发明应用于银行、公共网络、单位内部网络等对安全要求比较高的系统,本发明还可作为一种动态加密算法用于文本的加密。由于密码是动态生成,无需遮挡他人视线,适用范围广、安全性强。

附图说明

图1为本发明密码生成方法流程示意图;

图2为本发明密码验证方法流程示意图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

一种纯软件动态密码,它是采用固定密码段与共知变量相结合的方式,通过操作人对其位移或数值进行简单计算,即可形成随共知变量的不同而即时变动的动态密码,同时软件系统按相同的规则进行计算,并与输入的动态密码进行比较,从而确认密码是否正确。

如图1所示,一种纯软件动态密码的生成方法,其具体步骤如下:

步骤S1、输入固定密码段,固定密码段时一定长度的字符串,其长度也可以为“0”,系统接受输入的固定密码段字符,存入系统,如:“254786”,当然也可以是数字与英文字符的组合,如“D4GG54”,变量记为G;

步骤S2、软件显示系统与操作者可共同认知的变量类型,如年、月、日、时、分、秒、周、以及一定时段内的操作次数等、操作者个人身份证号码或其他证件号码,供操作者选择,并记作变量Y、M、D、H、m、s、W、C、Z等;

步骤S3、对固定密码段G与变量Y、M、D、H、m、s、W、C、Z中的一项或几项进行位移或数值或字符计算与组合,并将动态密码计算公式输入系统并存储,记作M。

步骤S4、根据公式:

M=G1+int(H2/2)+G3+int(H1/2)+G2+G4+H1+G6+G5、

M=(G1G2)*m2+G3+G5+G6+G4、

M=G*s获得密码。

其中、G1、G2、G3…代表固定密码段字符串处在第1、2、3…位置的字符。H2、H1、m2代表共知变量H的第2位置的字符对应的数值、m的第2位置的字符对应的数值。int(H2/2)代表对H2字符对应的数值除以2商的取整后对应的字符。+代表字符串的相加。(G1G2)*m2表示G的前两位字符对应的数值乘以m第2位字符对应的数值之积对应的字符串。G*s表示G对应数值乘以s之积对应的字符串。

这个公式是需要持有人记住的。如用于银行等重要而易忘记的密码,可用固定密码段与变量简单组合,如固定密码段字符为“3587”,动态密码段可取分钟值,如2016-07-15:09-08-45,可取分钟值“08”,将第一位“0”放在固定密码段第2位,将分钟的第二位“8”放在固定密码段的第4位,密码则为“305887”,简单易行。

将字符变量G的第n位字符记作Gn,如第一位字符记作为G1,其他变量以此类推;int()为数值取整函数;对于应为字符可以进行位移操作,或ASCII计算与转换;进行数值运算,如出现进位可进行进位,也可只取去个位,不进行进位计算。如3*6=18,可以取直接结果18,也可以取各位数8作为计算结果。

如图2所示,本发明还公开了一纯软件动态密码的验证方法,其方法步骤如下:

步骤S1、操作人员将固定密码、登录系统当时的年、月、日、时、分、秒、周,以及在一定时段内的操作次数等具体数值代入公式M1,得到动态密码的具体字符串M1后输入系统;

步骤S2、系统根据存储的固定密码段字符及存储的动态密码计算公式进行计算,得到系统计算的动态密码M2;

步骤S2、系统将输入的动态密码M1与系统计算动态密码M2进行比较,若两者相等,则完成密码的验证,进入系统,若两者不相等,则提示密码输入错误,请重新输入密码或退出系统。

以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1