一种密码生成方法及装置与流程

文档序号:15394462发布日期:2018-09-08 01:51阅读:188来源:国知局

本发明涉及信息安全技术,尤其涉及一种密码生成方法及装置。



背景技术:

随着信息技术的进步以及智能终端的普及,信息安全越来越受到大众的关注和重视。不少终端应用、网站等中都需要用户注册用户名称和用户密码,通常较为复杂的密码的安全性较高,因此,用户在注册应用或者网站时,系统会提示用户设置较为复杂的密码。但是为了方便记忆,用户往往会根据自己的个人信息(如:姓名、生日、电话号码、身份证号码等)来设置用户密码,甚至用户会在不同应用或者网站上使用相同的用户名称和用户密码。

从而,这些用户密码易于预测且有规律,不法分子很容易获取并有针对性地攻击用户账户。尤其是当某一应用或者网站上存储的用户信息数据发生泄露时,不法分子很容易推测出用户在其它应用或者网站中的用户密码,导致用户的所有的账户信息都可能被攻破,存在较大的安全性风险。



技术实现要素:

有鉴于此,本发明实施例期望提供一种密码生成方法及装置,以提高用户账户密码的安全性,方便用户操作。

为达到上述目的,本发明的技术方案是这样实现的:

第一方面,本发明实施例提供一种密码生成方法,包括:获取待登录对象的特征数据以及核心用户密码;基于所述核心用户密码生成密钥;采用第一预设加密算法,对所述密钥和所述特征数据进行加密运算,获得用户密码,其中,所述用户密码用于登录所述待登录对象。

第二方面,本发明实施例提供一种密码生成装置,包括:数据输入模块、密钥生成模块以及密码运算主模块,其中,所述数据输入模块,用于获取待登录对象的特征数据以及核心用户密码;所述密钥生成模块,用于基于所述核心用户密码生成密钥;所述密码运算主模块,用于采用第一预设加密算法,对所述密钥和所述特征数据进行加密运算,获得用户密码,其中,所述用户密码用于登录所述待登录对象。

本发明实施例提供了一种密码生成方法及装置,其中,首先获取待登录对象的特征数据,然后,获取核心用户密码,并基于该核心用户密码生成密钥,最后,采用预设加密算法,基于上述密钥和待登录对象的特征数据进行加密运算,获得用户密码,这样,就能够采用该用户密码登录上述待登录对象。在本发明实施例中,由于根据应用或网站的特征信息、注册的用户名、注册用户名的时间信息等数据,生成待登录对象所对应的特征数据,并根据核心用户密码与待登录对象的特征数据,生成用户所需的用户密码,所以,该用户密码符合随机性强、存储空间需求少、难以破解、不同应用的密码无相关的特点,大大提高了提高用户账户密码的安全性,使得用户仅需要记住核心用户密码即可进行登录,方便了用户操作,提供良好的用户体验。

附图说明

图1为本发明实施例中的密码生成装置的结构示意图;

图2为本发明实施例一中的密码生成方法的流程示意图;

图3为本发明实施例二中的密码生成方法的流程示意图一;

图4为本发明实施例二中的密码生成方法的流程示意图二;

图5为本发明实施例二中的密码生成方法的流程示意图三;

图6为本发明实施例三中的密码生成装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明实施例提供一种密码生成方法,应用于一密码生成装置,该装置可以应用于如智能手机、平板电脑、笔记本电脑、智能手表等支持以用户账户信息登录应用或者网站的终端。在实际应用中,该方法可以应用于终端身份认证业务和身份注册业务中的各种需要密码的场合中,如登录网站、登录社交应用、拨号连网等。示例性地,用户可以在注册某一网站的账户时,通过该装置生成一个符合该网站密码设置规则的高密码强度的用户密码。

在本发明实施例中,图1为本发明实施例中的密码生成装置的结构示意图,参见图1所示,该装置包括:数据输入模块(dim,datainputmodule)101、密钥生成模块(kgm,keygenerationmodule)102、密码运算主模块(mem,mainencryptionmodule)103。

具体地,dim,用于获取待登录对象的特征数据;

其中,待登录对象的特征数据可以由待登录的应用或网站的特征信息、用户名、注册用户或修改密码的日期等数据中的一种或多种生成,以此确保输入数据的特征性。这里,待登录的应用或网站的特征信息是指能够唯一表示该应用或者网站的信息,使得该待登录的应用或网站区别于其他的应用或网站,在实际应用中,待登录的应用或网站的特征信息可以是指应用名称、网站域名、预先为各个应用或者网站设置的编号等。

kgm,用于获取用户输入的核心用户密码,并生成由核心用户密码计算出的密钥;

其中,核心用户密码是用户唯一需要记住的信息,在用户需要用户密码来登录应用或者网站时,就可以输入该核心用户密码。密钥是mem进行加密运算生成用户密码所需的密钥;

mem,用于根据上述密钥和特征数据进行加密运算,获得用户密码。

如此,由于根据核心用户密码与待登录对象的特征数据,来生成用户所需的用户密码,而,待登录对象的特征数据是由待登录的应用或网站的特征信息、用户名、注册用户或修改密码的日期等数据中的一种或多种组成的,所以,该用户密码具有随机性强、存储空间需求少、难以破解、不同应用的密码无相关的特点,能够大大提高用户账户密码的安全性,而且用户仅需要记住核心用户密码即可进行登录,从而,方便了用户操作,提供良好的用户体验。

下面结合上述装置,对本发明实施例提供的密码生成方法进行说明。

实施例一

图2为本发明实施例一中的密码生成方法的流程示意图,参见图2所示,该方法包括:

s201:获取待登录对象的特征数据;

这里,待登录对象可以是一应用软件,如即时聊天应用、购物应用等,也可以是一网站,如视频播放网站、搜索网站等,当然,还可以是其他支持以用户身份信息登录功能的对象,如局域网互联,这里,本发明实施例不做具体限定。

具体地,上述待登录对象的特征数据至少由待登录对象的特征信息、待登录对象中注册的用户名、待登录对象对应的时间信息中的一种或多种数据组成,其中,上述时间信息可以是用户在待登录对象注册用户名的时间信息,或用户最近一次修改用于登录该待登录对象的用户密码的时间信息。

在实际应用中,如果用户未修改过该用户密码,那么,上述时间信息就是指注册用户名的时间;如果用户修改过该用户密码,那么,上述时间信息就会更新为最近一次修改该用户密码的时间,从而,上述时间信息就是指用户最近一次修改用于登录该待登录对象的用户密码的时间。

在具体实施过程中,为了保证各个登录对象的用户密码之间的独立性,需要获得各个登录对象之间对应的相互独立的且可以标识该登录对象的特征数据。因此,待登录对象的特征数据可以由能够唯一表征待登录应用或网站的特征信息,如预先为待登录对象分配的编号、应用名称、网站域名等,和用户在进行身份信息注册时所使用的用户名、个人邮箱等,以及时间信息,如注册用户的日期或者修改用户密码时的日期等数据中的一种或多种数据组成。

在实际应用中,当用户需要在应用或者网站中进行身份信息注册,如注册账户信息,或者当用户需要进行身份信息认证,以便登录应用或者网站时,dim可以获取用户需要登录的网站或者应用的特征信息、用户注册的用户名、用户注册或修改密码的日期等数据,并将这些数据进行串连拼接生成特征数据作为dim的输入数据。

在具体实施过程中,为了便于在用户待登录对象时生成用户密码,可以在用户注册身份信息时,将dim获取的用户需要登录的网站或者应用的特征信息、用户注册的用户名、用户注册或修改密码的日期等数据,以及dim生成的特征数据保存在数据库中,从而,当用户想要以之前注册成功的身份信息登录相应的应用或者网站时,dim就可以根据待登录应用或网站的特征信息,如应用名称、网站域名等,从数据库中查找到对应的特征数据。

在本发明其它实施例中,为了保证用户密码的安全性,终端可以根据用户的操作或者周期性的对上述特征数据进行更新。例如,当终端确定需要对特征数据进行更新时,可以使用当前日期,更新上述特征数据。

s202:获取核心用户密码;

这里,核心用户密码可以是用户自行设定的,也可以是注册时待登录应用或网站为用户分配的,其中,每个用户分配一个唯一的核心用户密码。

在实际应用中,用户唯一需要记住的信息就是核心用户密码,在用户需要用户密码来登录应用或者网站时,就可以输入该核心用户密码。

s203:基于核心用户密码生成密钥;

这里,kgm可以使用核心用户密码来生成mem进行加密运算所需的密钥。

在具体实施过程中,s203可以包括:采用第二预设加密算法,对核心用户密码加密计算,获得源密码;从源密码中截取预设长度的数据作为密钥。

其中,预设长度为第一预设加密算法进行加密运算时所对应的长度。

具体地,在用户需要用户密码来登录应用或者网站时,用户就可以输入该核心用户密码。在用户输入核心用户密码之后,kgm就会获取该核心用户密码并启动用户密码生成功能,然后,采用第二预设加密算法对核心用户密码进行加密计算,得到源密码。最后,kgm可以根据mem进行加密运算所需的密钥长度,从源密码中截取密钥长度的数据来作为mem进行加密运算所需的密钥。

在实际应用中,可以采用sha256、sha384、sha512等hash加密算法作为第二预设加密算法,当然,还可以采用其他加密算法来作为第二预设加密算法,这里,本发明实施例不做具体限定。具体地,当第二预设加密算法分别为sha256、sha384或sha512时,那么,kgm所获得的源密码的长度可以对应为32、48或64字节(byte)。

需要说明的是,上述密钥长度可以根据mem进行加密运算时所采用的加密算法来确定,也可以在终端出厂前预先设定。具体地,可以按照从前往后的顺序、从后往前的顺序或其他次序等来从源密码中获取密钥长度的数据,并将获取到的密钥长度的数据确定为mem进行加密运算时的所需的密钥。

示例性地,假设mem进行加密运算所需的密钥长度为128比特位(bit),kgm根据核心用户密码计算的源密码为32byte,那么,kgm可以截取源密码的前128bits数据作为密钥,kgm也可以截取源密码的后128bits数据作为密钥,当然,还可以采用其他方式从源密码中截取128bits数据作为密钥,由本领域技术人员在具体实施的过程中确定,这里,本发明实施例不做具体限定。

s204:根据密钥和特征数据进行加密运算,获得用户密码。

这里,在dim获取到待登录对象的特征数据以及kgm根据核心用户密码计算出密钥之后,mem会获取上述特征数据和密钥,然后,采用第一预设加密算法,对特征数据采用密钥进行加密运算,获得用户密码。如此,用户就能够得到与当前待登录对象相关的用户密码。

在实际应用中,为了提高生成用户密码的效率,上述第一预设加密算法可以为对称加密算法,如高级加密标准(aes,advancedencryptionstandard)、数据加密标准(des,dataencryptionstandard)、三重数据加密算法(tdea,tripledataencryptionalgorithm)等,当然,还可以为其它加密算法,这里,本发明实施例不做具体限定。

在具体实施过程中,s204可以包括:采用对称加密算法,对密钥和特征数据进行运算,获得加密运算结果;获取待登录对象的密码设置规则,其中,密码设置规则至少包括待登录对象所支持的密码字符种类以及密码长度;根据密码设置规则处理加密运算结果,获得用户密码。

具体地,mem先基于kgm计算的密钥,利用对称加密算法,对dim获取到的待登录对象的特征数据进行加密处理,得到加密运算结果;然后,mem获取待登录对象所支持的密码字符种类以及密码长度;最后,将该加密运算结果的每个字节数据映射为待登录对象所支持的密码字符种类中的字符,再根据待登录对象所支持的密码长度获取符合待登录对象的密码设置规则的字符串,最终将该字符串确定为用户密码。

在实际应用中,由于密码位数越长、使用的符号种类越多的用户密码对应的安全性就越高,因此,较优地,在根据待登录对象的密码设置规则生成用户密码时,最好以小写字母如‘a-z’、大写字母如‘a-z’、数字如‘0-9’以及特殊字符如‘*、_’的多种组合形成用户密码。

至此,便完成了用户密码的生成流程。这样,终端可以将用户密码自动填入密码的文本框,以使用该用户密码登录应用或者网站。

在本实施例中,首先,获取待登录对象的特征数据,然后,接收用户输入的核心用户密码,并基于该核心用户密码生成密钥,最后,采用预设加密算法,对上述密钥和待登录对象的特征数据进行加密运算,获得用户密码,这样,就能够采用该用户密码登录上述待登录对象。在本发明实施例中,由于根据应用或网站的特征信息、用户名、注册用户或修改密码的日期等数据,生成待登录对象所对应的特征数据,并根据核心用户密码与待登录对象的特征数据,生成用户所需的用户密码,所以,该用户密码符合随机性强、存储空间需求少、难以破解、不同应用的密码无相关的特点,大大提高了提高用户账户密码的安全性,使得用户仅需要记住核心用户密码即可进行登录,方便了用户操作,提供良好的用户体验。

实施例二

基于前述实施例,在实际应用中,用户可以使用终端生成的用户密码在应用中注册身份信息,也可以在需要登录应用时重新生成该用户密码,以便登录应用,当然,还可以在需要更换用户密码时,生成新的用户密码。

下面结合上述三个应用场景,对本发明实施例提供的密码生成方法进行详细的说明。

首先,介绍用户在注册身份信息时,生成用户密码的过程。

那么,图3为本发明实施例二中的密码生成方法的流程示意图一,参见图3所示,该方法包括:

s301:接收用户输入的注册信息,并获取目标应用的特征信息以及当前系统时间信息;

这里,当用户想要在目标应用中注册身份信息时,为了生成安全性高的用户密码,那么,就需要获取用于生成用户密码的特征数据。具体地,用户可以在目标应用的注册界面中,填写注册信息,如用户名、个人邮箱、联系方式等,然后,dim会接收到用户输入的注册信息,并从目标应用获取目标应用的特征信息,如应用名称、应用服务器域名等,再从终端中获取当前的系统时间信息作为用户注册的日期,这里,用户注册的日期是指用户在该目标应用注册用户名的时间信息。

s302:将特征信息、注册信息以及当前系统时间信息进行串接,生成特征数据;

示例性地,假设dim获取到的特征数据包括应用的特征信息(apk_info)、用户名(user_name)以及用户注册的日期(current_time),那么,dim获得的特征数据data_para可以使用以下表达式(1)来表示,

data_para=apk_info||user_name||current_time(1)

其中,“||”表示数据串接操作。

在实际应用中,为了便于生成特征数据,终端可以给每个应用的特征信息进行编码,如“支付应用”的编码为0x00000001,“聊天应用”的编码为0x00000003;终端也可以给每个用户名进行编码,如“张三”为0x12345678,“李四”为0x12345679;终端还可以将时间信息进行编码,如“2016年12月13日14点05分”可以编码为0x0000201611131405。这里,应用的编码和用户名的编码分别为4字节数据,注册用户日期的编码为8字节数据。

这样,假设dim获得的目标应用的特征信息为应用名“支付应用”、用户输入的注册信息为用户名“张三”、当前系统的时间为“2016年12月13日14点05分”,那么,根据上述表达式(1),可以将“支付应用”、“张三”以及“2016年12月13日14点05分”所对应的编码串连拼接,来组成特征数据,如此,特征数据可以表示为0x00000001123456790000201611131405。

s303:接收用户输入的核心用户密码;

s304:根据核心用户密码生成密钥;

在具体实施过程中,kgm可以采用sha256、sha384、sha512等hash加密算法来对核心用户密码进行加密计算,获得源密码;然后,从源密码中截取预设长度的数据,获得密钥。

在实际应用中,当hash加密算法分别为sha256、sha384或sha512时,那么,kgm所获得的源密码的长度可以对应为32、48或64byte。

示例性地,假设kgm获得的核心用户密码为user_key,那么,通过hash加密算法对核心用户密码进行计算获得的源密码source_key可以使用以下表达式(2)来表示,

source_key=hash(user_key)(2)

其中,source_key为hash加密运算结果。

需要说明的是,上述密钥长度可以根据mem进行加密运算时所采用的加密算法来确定,也可以在终端出厂前预先设定。具体地,可以按照从前往后的顺序、从后往前的顺序或其他次序等来从源密码中获取密钥长度的数据,并将获取到的密钥长度的数据确定为mem进行加密运算时的所需的密钥。

示例性地,假设mem进行加密运算所需的密钥长度为128bit,source_key为32byte,那么,kgm可以截取source_key的前128bits数据作为密钥key,从而,key可以使用以下表达式(3)来表示,

key=source_key[0:127](3)

其中,key为密钥,source_key为源密码,[0:127]表示截取第0位至第127位上的数据。

当然,参见表达式(4),kgm还可以截取source_key的后128bits数据作为密钥key,

key=source_key[128:255](4)

其中,key为密钥,source_key为源密码,[128:255]表示截取第128位至第255位上的数据。

s305:根据密钥和特征数据进行加密运算,获得用户密码。

具体地,mem在获得了密钥key和特征数据data_para之后,会将aes加密运算的运算轮数(round)配置为0;然后,参见表达式(5)所示,将data_para和round进行加法运算,使用key作为密钥进行aes加密运算,获得密码编码user_code;最后,根据user_code生成满足注册该应用所需的密码长度的字符串。这样,就获得了用户所需的用户密码。

user_code=aeskey(data_para+round)(5)

其中,user_code为aes加密运算结果,key为密钥,data_para为特征数据,round为aes加密运算的运算轮数,round大于等于0。

在实际应用中,在aes加密运算初始化时可以将round设置为0,如果确定user_code映射的字符串长度小于注册该应用所需的密码长度时,可以将round递增,重新计算user_code,直到user_code映射的字符串长度等于注册该应用所需的密码长度时,将该字符串确定为用户密码。

需要说明是,mem生成的用户密码长度可以是用户预先指定的,也可以是mem根据目标应用的密码设置规则中的密码长度来确定的。这里,本发明实施例不做具体限定。

这样,用户在目标应用上的身份信息注册成功后,就可以使用该身份信息来登录目标应用。

其次,介绍用户在登录应用时,生成用户密码的过程。

那么,图4为本发明实施例二中的密码生成方法的流程示意图二,参见图4所示,该方法包括:

s401:获得来自待登录应用的用户密码生成指令;

其中,用户密码生成指令用于指示生成待登录应用的用户密码,携带有待登录应用的特征信息。这里,该特征信息可以唯一标识待登录目标应用。

s402:执行用户密码生成指令,获取待登录应用的特征信息;

这里,在获得了用户密码生成指令后,为了生成用户密码,首先需要从用户密码生成指令中获取待登录应用的特征信息,以便获取对应的特征数据。

s403:根据特征信息,查找对应的特征数据;

这里,可以根据特征信息,从本地数据库中查找待登录应用对应的特征数据。

在实际应用中,为了便于用户操作,在某一应用进行用户注册时,会根据该应用的特征信息,对应的将生成的特征数据以及生成特征数据所用的各个数据存储在本地的数据库中,以便登录应用时重新生成用户密码。

s404:接收用户输入的核心用户密码;

s405:根据核心用户密码生成密钥;

s406:根据密钥和特征数据进行加密运算,生成用户密码。

这样,就完成了在用户登录应用时生成注册时的用户密码,从而,用户就可以登录到应用中。

最后,介绍用户在更新用户密码时,生成用户密码的过程。

那么,图5为本发明实施例二中的密码生成方法的流程示意图三,参见图5所示,该方法包括:

s501:获得来自目标应用的用户密码更新指令;

这里,用户密码更新指令用于指示根据当前系统时间信息更新目标应用中的用户密码,携带有目标应用的特征信息。

s502:执行用户密码更新指令,获取目标应用的特征信息;

这里,在获得了用户密码更新指令后,为了查询目标应用对应的特征数据,就可以先获取目标应用的特征信息。

s503:根据特征信息,查找对应的特征数据;

s504:获取当前系统时间信息,更新特征数据;

在实际应用中,为了更新用户密码,当特征数据如表达式(1)所示时,可以将本地数据库中存储的特征数据中的时间信息更换为当前系统的时间信息来实现更新特征数据;当特征数据如表达式(6)所示时,也可以给特征数据中增加的当前系统的时间信息,使得更新后的特征数据如表达式(1)所示。这里,本发明实施例不做具体限定。

data_para=apk_info||user_name(6)

其中,“||”表示数据串接操作,data_para为特征数据,apk_info为应用的特征信息,user_name为用户名。

s505:接收用户输入的核心用户密码;

s506:根据核心用户密码生成密钥;

s507:根据密钥和更新后的特征数据进行加密运算,更新用户密码。

这样,就完成了更新目标应用中的用户密码。

实施例三

基于同一发明构思,图6为本发明实施例三中的密码生成装置的结构示意图,参见图6所示,该密码生成装置60包括:数据输入模块601、密钥生成模块602以及密码运算主模块603,其中,数据输入模块601,用于获取待登录对象的特征数据以及核心用户密码;密钥生成模块602,用于基于核心用户密码生成密钥;密码运算主模块603,用于采用第一预设加密算法,对密钥和特征数据进行加密运算,获得用户密码,其中,用户密码用于登录待登录对象。

进一步地,密钥生成模块,还用于采用第二预设加密算法,对核心用户密码加密计算,获得源密码;从源密码中截取预设长度的数据,获得密钥。

进一步地,密码运算主模块,还用于采用对称加密算法,对密钥和特征数据进行运算,获得加密运算结果;获取待登录对象的密码设置规则,其中,密码设置规则至少包括待登录对象所支持的密码字符种类以及密码长度;根据密码设置规则处理加密运算结果,获得用户密码。

进一步地,密码运算主模块,还用于将加密运算结果的每个字节数据映射为待登录对象所支持的密码字符种类中的字符;基于字符,获得满足密码长度的字符串;将字符串确定为用户密码。

在实际应用中,上述数据输入模块、密钥生成模块以及密码运算主模块均可由中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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