移动终端动态口令的生成方法、存储介质、电子设备及系统与流程

文档序号:16198238发布日期:2018-12-08 06:21阅读:512来源:国知局
移动终端动态口令的生成方法、存储介质、电子设备及系统与流程

本发明涉及移动终端的动态口令开发领域,具体涉及一种移动终端动态口令的生成方法、存储介质、电子设备及系统。

背景技术

随着移动终端和互联网的的快速发展,互联网应用与移动终端之间的认证方式主要为动态口令认证方式,例如互联网应用对移动终端进行身份认证时,需要在互联网应用中输入正确的动态口令,互联网应用才会认证通过。动态口令的生成方法一般为:移动终端基于时间和密钥,并通过一定的算法生成一个不可预测的随机数字组合(即动态口令、每隔一段时间变换一次),以保证了身份认证的安全性。

但是,上述动态口令的生成方法存在以下缺陷:

基于时间和密钥生成动态口令的操作过程比较繁琐,而且每次生成动态口令都需要使用新的基本代码,代码的复用性较差,不利于项目的管理和代码结构的优化。进一步,每次使用新的代码会降低开发效率和代码质量,大量的新代码占用的移动终端的内存空间较大,降低了移动终端的工作质量。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何使用通用代码多次生成动态口令,本发明生成动态口令时,不仅简化了生成动态口令的操作流程,而且显著提高了代码的复用性,进而提高了开发效率和代码质量。

为达到以上目的,本发明提供的移动终端动态口令的生成方法,包括以下步骤:

s1:移动终端创建工具类,在工具类中设置动态口令生成参数,动态口令生成参数包括算法、秘钥、密码位数和密码生成时间周期,转到s2;

s2:移动终端将算法设置为外部静态常量后进行保存,保存形式为字符串,转到s3;

s3:需要生成动态口令时,移动终端获取当前时间,将当前时间整除s1中的密码生成时间周期,得到计算值;根据s1中的算法对计算值进行计算后得到校验值;将校验值进行数据交换和二进制转换后,得到交换值,转到s4;

s4:根据交换值、s1中的算法、秘钥和密码长度,得到授权码,根据授权码生成动态口令。

本发明提供的存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时上述移动终端动态口令的生成方法。

本发明提供的电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现移动终端动态口令的生成方法。

本发明提供的移动终端动态口令的生成系统,包括设置于移动终端上的工具类创建模块、算法保存模块、动态口令生成初始化模块和动态口令生成模块;

工具类创建模块用于:创建工具类,在工具类中设置动态口令生成参数,动态口令生成参数包括算法、秘钥、密码位数和密码生成时间周期,向算法保存模块发送算法保存信号;

算法保存模块用于:将算法设置为外部静态常量后进行保存,保存形式为字符串,向动态口令生成初始化模块发送动态口令生成初始化信号;

动态口令生成初始化模块用于:生成动态口令时,获取当前时间,将当前时间整除工具类创建模块中的密码生成时间周期,得到计算值;根据工具类创建模块的算法对计算值进行计算后得到校验值;将校验值进行数据交换和二进制转换后,得到交换值,向动态口令生成模块发送动态口令生成信号;

动态口令生成模块用于:根据交换值、工具类创建模块的算法、秘钥和密码长度,得到授权码,根据授权码生成动态口令。

与现有技术相比,本发明的优点在于:

通过s1至s4可知,本发明通过在工具类中传入参数,来快速高效的生成动态口令,与现有技术中每次生成动态口令都需要使用新的基本代码,本发明生成动态口令时,只需要调用工具类通过工具类生成动态口令,不需要重新生成代码,不仅简化了生成动态口令的操作流程,而且显著提高了代码的复用性,进而提高了开发效率和代码质量。

进一步,与现有技术中多次生成动态口令所产生的大量新代码相比,本发明的工具类的代码数量较少,进而显著较小移动终端的内存空间,提高了移动终端的工作质量。

(2)参见s2可知,本发明的算法保存时为外部静态常量,即算法能够被其他文件所共享,算法保存后的类型为外部变量,即算法能够被其他文件所调用。因此,本发明的算法的通用性较强,便于移动终端的扩展,适于推广。

(3)本发明通过c语言函数生成动态口令,c语言函数为移动终端的自带函数,因此动态口令的生成速度较快,提升了用户体验。

附图说明

图1为本发明实施例中移动终端动态口令的生成方法的流程图;

图2为本发明实施例中电子设备的连接框图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中移动终端动态口令的生成方法,包括以下步骤:

s1:移动终端创建一个继承于nsobject的dysecrettool(工具类),在工具类中通过initwithsecret(构造函数)设置动态口令生成参数,动态口令生成参数包括算法、秘钥(只要是nsdata都可以识别)、密码位数和密码生成时间周期。本实施例中密码位数为6位,密码生成时间周期为5s;实际应用时密码位数和密码生成时间周期根据具体需求而定,转到s2。

s1的目的在于:通过在工具类中传入具体参数,来快速高效的生成动态口令,不仅简化操作流程,而且通过工具类生成动态口令时不需要重新生成代码,显著提高了代码的复用性。

s2:移动终端将算法设置为外部静态常量(即能够共享的数据)后进行保存,保存形式为字符串。算法包括安全哈希算法1(@“sha1”)、安全哈希算法256(@“sha256”)、安全哈希算法5212(@“sha5212”)和md5算法(@“md5”)中的至少1种;将算法申明为外部变量extern类型,以便被其他的文件所调用,进而提升算法的扩展性,转到s3。

s3:需要生成动态口令时,移动终端获取当前时间,将当前时间整除s1中的密码生成时间周期,得到计算值。根据s1中的算法对计算值进行计算后得到校验值;调用交换字节函数将校验值进行数据交换、并进行二进制转换,得到交换值,转到s4。

s4:根据交换值、s1中的算法、秘钥和密码长度,得到授权码(得到授权码的计算方式为本领域现有技术),根据授权码生成动态口令。

本实施例中的移动终端为ios移动终端,此时s4的具体流程为:定义一个ios移动终端的cchmaccontext的类型的变量为ctx,根据交换值、s1中的算法、秘钥和密码长度,对ctx进行更新,得到授权码;通过c语言函数对授权码进行二进制转换后,生成动态口令。c语言函数为移动终端的自带函数,因此通过c语言函数生成动态口令时,生成速度较快,进而提升了用户体验。

通过s1至s4可知,本发明实施例通过在工具类中传入参数,来快速高效的生成动态口令,与现有技术中每次生成动态口令都需要使用新的基本代码,本发明生成动态口令时,只需要调用工具类通过工具类生成动态口令,不需要重新生成代码,不仅简化了生成动态口令的操作流程,而且显著提高了代码的复用性,进而提高了开发效率和代码质量。

进一步,与现有技术中多次生成动态口令所产生的大量新代码相比,本发明的工具类的代码数量较少,进而显著较小移动终端的内存空间,提高了移动终端的工作质量。

本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述移动终端动态口令的生成方法。需要说明的是,所述存储介质包括u盘、移动硬盘、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。

参见图2所示,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述移动终端动态口令的生成方法。

本实施例还提供一种移动终端动态口令的生成系统,包括设置于ios移动终端上的工具类创建模块、算法保存模块、动态口令生成初始化模块和动态口令生成模块。

工具类创建模块用于:创建工具类,在工具类中设置动态口令生成参数,动态口令生成参数包括算法、秘钥、密码位数和密码生成时间周期,密码位数≥6位,密码生成时间周期≥5s,算法包括安全哈希算法1、安全哈希算法256、安全哈希算法5212和md5算法中的至少1种;向算法保存模块发送算法保存信号。

算法保存模块用于:将算法设置为外部静态常量后进行保存,保存形式为字符串,将算法的类型设置为外部变量;向动态口令生成初始化模块发送动态口令生成初始化信号。

动态口令生成初始化模块用于:生成动态口令时,获取当前时间,将当前时间整除工具类创建模块中的密码生成时间周期,得到计算值;根据工具类创建模块的算法对计算值进行计算后得到校验值;将校验值进行数据交换和二进制转换后,得到交换值,向动态口令生成模块发送动态口令生成信号。

动态口令生成模块用于:根据交换值、工具类创建模块的算法、秘钥和密码长度,得到授权码,根据授权码生成动态口令,具体工作流程包括:定义一个ios移动终端的cchmaccontext的类型的变量为ctx,根据交换值、s1中的算法、秘钥和密码长度,对ctx进行更新,得到授权码;通过c语言函数对授权码进行二进制转换后,生成动态口令。

需要说明的是:本发明实施例提供的系统在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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