首页> 中国专利> 一种生成目标事件的口令的方法及装置

一种生成目标事件的口令的方法及装置

摘要

本发明是关于一种生成目标事件的口令的方法及装置,该方法包括:当目标事件被触发时,获取历史随机数列表;所述历史随机数列表包括已生成的口令对应的随机数;在所述第一数值区间内生成一个不位于所述历史随机数列表中的目标随机数;根据所述目标随机数确定所述目标事件的口令。在本发明中,无需事先生成大量不同的随机数值,这样就不会因为事先生成大量不同的随机数值占用较多的时间;以及无需将事先生成的大量的随机数值存储在本地;这样就不会占用本地较多的存储空间。

著录项

  • 公开/公告号CN106470108A

    专利类型发明专利

  • 公开/公告日2017-03-01

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN201510515381.1

  • 发明设计人 唐志慧;

    申请日2015-08-20

  • 分类号H04L9/32(20060101);

  • 代理机构北京弘权知识产权代理事务所(普通合伙);

  • 代理人逯长明;许伟群

  • 地址 开曼群岛大开曼岛

  • 入库时间 2023-06-19 01:42:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-14

    授权

    授权

  • 2017-03-29

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20150820

    实质审查的生效

  • 2017-03-01

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种生成目标事件的口令的方法及装置。

背景技术

随着技术的飞速发展,口令技术已经成为身份认证技术的主流,且广泛应用于电子商务、网游和金融等领域,可以有效解决用户身份认证问题,进而可以防止不法分子非法入侵用户账户给用户带来财产损失。

目前,在现有技术中,当需要生成纯数字口令时,事先可以在一个数值与另一个数值组成的区间中生成大量的、位数相同且数值不同的口令,例如当需要生成6位的纯数字口令时,事先生成000000~999999中100万个不同的口令,当需要生成9位的纯数字口令时,事先生成0~999999999中10亿个不同的口令;然后将生成的所有口令存储至本地,当需要使用一个口令时,可以从本地提取出一个口令并进行使用;然后将提取出的口令从本地删除,以避免重复提取。

然而,现有技术中事先生成大量口令的过程需要花费大量的时间,且将大量口令存储在本地需要占用非常大的存储空间。

发明内容

为克服相关技术中存在的问题,本发明提供一种生成目标事件的口令的方法及装置。

根据本发明实施例的第一方面,提供一种生成目标事件的口令的方法,所述方法包括:

当目标事件被触发时,获取历史随机数列表;所述历史随机数列表包括已生成的口令对应的随机数;

在所述第一数值区间内生成一个不位于所述历史随机数列表中的目标随机数;

根据所述目标随机数确定所述目标事件的口令。

进一步地,所述方法还包括:

将所述目标随机数存储到所述历史随机数列表中。

其中,所述在所述第一数值区间内生成一个不位于所述历史随机数列表中的目标随机数,包括:

生成一个位于所述第一数值区间内的第一数值区间随机数;

判断所述第一数值区间随机数是否位于所述历史随机数列表中;

当所述第一数值区间随机数不位于所述历史随机数列表中时,将所述第一数值区间随机数确定为所述目标随机数。

进一步地,所述方法还包括:

当所述第一数值区间随机数位于所述历史随机数列表中时,返回所述生成一个位于所述第一数值区间内的第一数值区间随机数的步骤,直至生成的第一数值区间随机数不位于所述历史随机数列表中为止。

进一步地,所述方法还包括:

当所述第一数值区间随机数位于所述历史随机数列表中时,统计累计生成第一数值区间随机数的生成次数;

将所述生成次数与预设次数进行比较;

当所述执行次数小于所述预设次数时,返回所述生成一个位于所述第一数值区间内的第一数值区间随机数的步骤;

当所述执行次数等于所述预设次数时,在与所述第一数值区间不重合的第二数值区间内,生成一个第二数值区间参考数,并根据所述第二数值区间参考数确定所述目标事件的口令。

其中,所述生成一个第二数值区间参考数,包括:

根据所述第二数值区间中的最大数值与最小数值之间的差值,以及预设备选数值,确定参考数值区间;

在未从所述参考数值区间内选择过的数值中选择一个数值作为加密基础数值;

按照预设加密方式对所述加密基础数值进行加密,得到小于所述差值的一个加密数值;

将所述加密数值与所述第二数值区间中的最小数值相加,得到位于所述第二数值区间内的一个数值,并作为所述第二数值区间参考数。

其中,所述按照预设加密方式对所述加密基础数值进行加密,包括:

按照如下公式对所述加密基础数值进行加密;

C=(k1m+k2)mod>

其中,在上述公式中,C为所述加密数值,k1为第一预设数值,k2为第二预设数值,m为所述加密基础数值,n为第三预设数值,mod为求余运算符号。

根据本发明实施例的第二方面,提供一种生成目标事件的口令的装置,所述装置包括:

获取模块,用于当目标事件被触发时,获取历史随机数列表;所述历史随机数列表包括已生成的口令对应的随机数;

生成模块,用于在所述第一数值区间内生成一个不位于所述历史随机数列表中的目标随机数;

确定模块,用于根据所述目标随机数确定所述目标事件的口令。

进一步地,所述装置还包括:

存储模块,用于将所述目标随机数存储到所述历史随机数列表中。

其中,所述生成模块包括:

第一生成单元,用于生成一个位于所述第一数值区间内的第一数值区间随机数;

判断单元,用于判断所述第一数值区间随机数是否位于所述历史随机数列表中;

确定单元,用于当所述第一数值区间随机数不位于所述历史随机数列表中时,将所述第一数值区间随机数确定为所述目标随机数。

进一步地,所述生成模块还包括:

所述第一生成单元还用于当所述第一数值区间随机数位于所述历史随机数列表中时,返回所述生成一个位于所述第一数值区间内的第一数值区间随机数的步骤,直至生成的第一数值区间随机数不位于所述历史随机数列表中为止。

进一步地,所述生成模块还包括:

统计单元,用于当所述第一数值区间随机数位于所述历史随机数列表中时,统计累计生成第一数值区间随机数的生成次数;

比较单元,用于将所述生成次数与预设次数进行比较;

所述第一生成单元还用于当所述执行次数小于所述预设次数时,返回所述生成一个位于所述第一数值区间内的第一数值区间随机数的步骤;

第二生成单元,用于当所述执行次数等于所述预设次数时,在与所述第一数值区间不重合的第二数值区间内,生成一个第二数值区间参考数,并根据所述第二数值区间参考数确定所述目标事件的口令。

其中,所述第二生成单元包括:

确定子单元,用于根据所述第二数值区间中的最大数值与最小数值之间的差值,以及预设备选数值,确定参考数值区间;

选择子单元,用于在未从所述参考数值区间内选择过的数值中选择一个数值作为加密基础数值;

加密子单元,用于按照预设加密方式对所述加密基础数值进行加密,得到小于所述差值的一个加密数值;

相加子单元,用于将所述加密数值与所述第二数值区间中的最小数值相加,得到位于所述第二数值区间内的一个数值,并作为所述第二数值区间参考数。

其中,所述加密子单元具体用于按照如下公式对所述加密基础数值进行加密;

C=(k1m+k2)mod>

其中,在上述公式中,C为所述加密数值,k1为第一预设数值,k2为第二预设数值,m为所述加密基础数值,n为第三预设数值,mod为求余运算符号。

本发明的实施例提供的技术方案可以包括以下有益效果:在本发明中,当目标事件被触发时,获取历史随机数列表;历史随机数列表包括已生成的口令对应的随机数;在第一数值区间内生成一个不位于历史随机数列表中的目标随机数;根据目标随机数确定目标事件的口令。根据本发明实施例的方法,无需事先生成大量不同的随机数值,这样就不会因为事先生成大量不同的随机数值占用较多的时间;以及无需将事先生成的大量的随机数值存储在本地;这样就不会占用本地较多的存储空间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种生成目标事件的口令的方法的流程图。

图2是根据一示例性实施例示出的一种生成目标事件的口令的方法的流程图。

图3是根据一示例性实施例示出的一种生成目标事件的口令的方法的流程图。

图4是根据一示例性实施例示出的一种生成目标事件的口令的装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种生成目标事件的口令的方法的流程图,如图1所示,该方法包括以下步骤。

在步骤S101中,当目标事件被触发时,获取历史随机数列表;

其中,历史随机数列表包括已生成的口令对应的随机数;

历史随机数值表包括的所有随机数均为位于第一数值区间内的数值,这些数值都是随机生成的数值。

在历史过程中,当生成一个位于第一数值区间内的随机数,且根据生成的随机数确定某一事件的口令时,会将生成的随机数存储在历史随机数值表中。

例如,假设历史随机数列表如下表1所示。表1中存储的随机数100123、205489、374152、387412和587412均为在历史过程中为某些事件生成的口令对应的随机数。

表1

历史随机数列表100123205489374152387412578412

在步骤S102中,在第一数值区间内生成一个不位于历史随机数列表中的目标随机数;

其中,目标事件可以为需要生成验证码的事件,例如,在用户想要登录服务器时,服务器会生成一个验证码以使用户在登录时在验证码输入框中输入该验证码。

目标事件也可以为需要生成密码的事件,例如,当用户在注册用于登录服务器的登录账号和登录密码时,如果用户不想自己设置登录密码,可以使服务器为用户随机生成一个登录密码。

其中,第一数值区间可以为任意两个不同的数值作为端点数值组成的数值区间,例如第一数值区间可以为数值100000和数值899999为端点数值组成的数值区间100000~899999。

其中,可以利用现有的随机算法为目标事件在第一数值区间内生成一个不位于历史随机数列表中的随机数,并作为目标随机数。

例如,在第一数值区间内生成的不位于历史随机数列表中的目标随机数为213025。

在步骤S103中,根据目标随机数确定目标事件的口令。

其中,可以直接将目标随机数作为目标事件的口令。

进一步地,将目标随机数存储到历史随机数列表中。

如此使得之后需要生成某一事件的口令时避免生成的口令对应的随机数与为目标事件生成的口令对应的随机数相同。

例如,将生成的随机数213025添加至表1所示的历史随机数列表中,得到如表2所示的历史随机数列表。

表2

历史随机数列表100123205489374152387412578412213025

在本发明图1所示的实施例中,当目标事件被触发时,获取历史随机数列表;历史随机数列表包括已生成的口令对应的随机数;在第一数值区间内生成一个不位于历史随机数列表中的目标随机数;根据目标随机数确定目标事件的口令。根据本发明实施例的方法,无需事先生成大量不同的随机数值,这样就不会因为事先生成大量不同的随机数值占用较多的时间;以及无需将事先生成的大量的随机数值存储在本地;这样就不会占用本地较多的存储空间。

在本发明另一实施例中,参加图2,步骤S102包括:

在步骤S201中,生成一个位于第一数值区间内的第一数值区间随机数;

在步骤S202中,判断第一数值区间随机数是否位于历史随机数列表中;

其中,获取历史随机数列表中的第一个随机数,将第一个随机数与第一数值区间随机数进行比较,如果二者相同,则确定第一数值区间随机数位于历史随机数列表中。如果二者不同,则获取历史随机数列表中的第二个随机数,将第二个随机数与第一数值区间随机数进行比较,如果二者相同,则确定第一数值区间随机数位于历史随机数列表中。如果二者不同,则获取历史随机数列表中的第三个随机数,继续执行上述步骤,直至获取到历史随机数列表中的最后一个随机数为止,如果最后一个随机数与第一数值区间随机数相同,则确定第一数值区间随机数位于历史随机数列表中,如果二者不同,则确定第一数值区间随机数不位于历史随机数列表中。

当第一数值区间随机数不位于历史随机数列表中时,在步骤S203中,将第一数值区间随机数确定为目标随机数。

当第一数值区间随机数不位于历史随机数列表中时,则说明在历史过程中未曾根据第一数值区间随机数确定某一事件的口令,即,未曾将第一数值区间随机数作为某一事件的口令对应的随机数,因此,可以根据第一数值区间随机数确定目标事件的口令。

例如,假设步骤S201生成的第一数值区间随机数为213025;且在表1所示的历史随机数列表中未查找到与第一数值区间随机数213025相同的随机数,则说明在历史过程中未曾根据第一数值区间随机数213025确定某一事件的口令,即,未曾将第一数值区间随机数213025作为某一事件的口令对应的随机数,因此,可以根据第一数值区间随机数213025确定目标事件的口令。

其中,当第一数值区间随机数位于历史随机数列表中时,返回步骤S201:生成一个位于第一数值区间内的第一数值区间随机数;直至生成的第一数值区间随机数不位于历史随机数列表中为止。

其中,当第一数值区间随机数位于历史随机数列表中时,说明在历史过程中曾经根据第一数值区间随机数确定某一事件的口令,即,曾经将第一数值区间随机数作为某一事件的口令对应的随机数,因此,为了避免为多个不同的事件的口令对应的随机数相同,则需要重新生成一个位于第一数值区间内的第一数值区间随机数,直至生成的第一数值区间随机数不位于历史随机数列表中为止,即直至生成的第一数值区间随机数在历史过程中未曾被作为某一事件的口令对应的随机数为止,也即,直至第一数值区间随机数不位于历史随机数列表中为止。因此,当第一数值区间随机数位于历史随机数列表中时,返回步骤S201。

例如,假设步骤S201中生成的第一数值区间随机数为205489;获取表1所示的历史随机数列表中的第一个随机数100123,将第一个随机数100123与第一数值区间随机数205489进行比较,且二者不同,则获取历史随机数列表中的第二个随机数205489,将第二个随机数205489与第一数值区间随机数205489进行比较,且二者相同,则说明第一数值区间随机数205489位于历史随机数列表中,返回步骤S201,直至生成的第一数值区间随机数不位于历史随机数列表中为止。

在本发明又一实施例中,参见图3,当第一数值区间随机数位于历史随机数列表中时,该方法还包括以下步骤:

在步骤S301中,统计累计生成第一数值区间随机数的生成次数;

其中,当目标事件被触发后,每当为目标事件生成一个位于第一数值区间内的第一数值区间随机数,就进行一次计数。

例如,当第一次为目标事件生成一个位于第一数值区间内的第一数值区间随机数时,设置生成次数为1;如果第一次生成的第一数值区间随机数位于历史随机数列表中,则会再次为目标事件生成一个位于第一数值区间内的第一数值区间随机数,并将生成次数1与数值1进行相加运算得到生成次数2。

在步骤S302中,将生成次数与预设次数进行比较;

其中,在本发明图2所示的实施例中,直至生成的第一数值区间随机数不位于历史随机数列表中时,才会根据生成的第一数值区间随机数确定目标事件的口令。否则,会一直执行步骤S201:生成一个位于第一数值区间内的第一数值区间随机数。然而,有时候很可能在执行了很多次步骤S201之后才会得到一个不位于历史随机数列表中的第一数值区间随机数,但是这样虽然可以根据该不位于历史随机数列表中的第一数值区间随机数确定目标事件的口令,但是由于执行了多次步骤S201,整个过程会花费很多时间,且执行多次步骤S201会占用很多系统资源。这样,当需要迅速得到目标事件的口令时,本发明图2所示的实施例就无法满足需求时间需求。

因此,在本发明图3所示的实施例中,技术人员事先会在本地设置预设次数,这样,当为目标事件生成一个位于第一数值区间内的第一数值区间随机数的生成次数达到达预设次数时,为了保证能够立即为目标事件生成一个之前未曾为其他事件生成的口令,就不再返回步骤S201,执行步骤S303。

当为目标事件生成一个位于第一数值区间内的第一数值区间随机数的生成次数达到预设次数时,还可以再次返回步骤S201。

例如,假设预设次数为3,当第一次为目标事件生成的位于第一数值区间内的第一数值区间随机数和第二次为目标事件生成的位于第一数值区间内的第一数值区间随机数都位于历史随机数列表中时,如果第三次为目标事件生成的位于第一数值区间内的第一数值区间随机数也位于历史随机数列表中,则为了保证能够立即为目标事件生成一个之前未曾为其他事件生成的口令,就不再返回步骤S201,而执行步骤S303。

当执行次数小于预设次数时,在步骤S201中,生成一个位于所述第一数值区间内的第一数值区间随机数;

当执行次数等于预设次数时,在步骤S303中,在与第一数值区间不重合的第二数值区间内,生成一个第二数值区间参考数;

其中,第二数值区间内的任一数值与第一数值区间的任一数值都不相同。

例如,第二数值区间为900000~999999;其中,第二数值区间900000~999999与第一数值区间100000~899999不重合。

本步骤具体可以通过如下流程实现,包括:

11)、根据第二数值区间中的最大数值与最小数值之间的差值,以及预设备选数值,确定参考数值区间;

具体地,获取第二数值区间的两个端点数值;将较大的端点数值与较小的端点数值相减得到一差值,然后组成一个由预设备选数值和该差值为端点数值的参考数值区间;

其中,预设备选数值与该差值不同,预设备选数值可以大于该差值,也可以小于该差值,本发明对此不加以限定。本发明以预设备选数值小于该差值为例进行举例说明,但不作为对本发明保护范围的限制。

例如,第二数值区间为900000~999999,与第一数值区间000000~899999不重合,第二数值区间900000~999999的两个端点的数值分别为900000和999999。在这两个端点数值中,端点数值999999为数值较大的端点数值,端点数值900000为数值较小的端点数值。将较大的端点数值999999与较小的端点数值900000相减得到一差值99999,假设预设备选数值为0,则可以组成一个以预设备选数值0和差值99999为端点数值的参考数值区间0~99999。

12)、在未从参考数值区间内选择过的数值中选择一个数值作为加密基础数值;

一般情况下,在本步骤中,从参考数值区间0~99999选择一个数值时是按照数值的大小依次选择的规则来进行选择,例如,第一次从参考数值区间0~99999选择数值时选择数值0,第二次从参考数值区间0~99999选择数值时选择数值1作为加密基础数值,第三次从参考数值区间0~99999选择数值时选择数值2作为加密基础数值,依次类推,即,当第N次从参考数值区间0~99999选择一个数值时,选择的数值为N-1作为加密基础数值。如此,可以保证每次从参考数值区间内选择的数值在历史过程中从未被选择过。

13)、按照预设加密方式对加密基础数值进行加密,得到小于差值的一个加密数值;

具体地,可以按照如下公式对加密基础数值进行加密;

C=(k1m+k2)mod>

其中,在上述公式中,C为加密数值,k1为第一预设数值,k2为第二预设数值,m为加密基础数值,n为第三预设数值,mod为求余运算符号。

例如,假设第一预设数值k1为7,第二预设数值k2为3,第三预设数值n为26,以及从参考数值区间0~99999选择的加密基础数值为13,则首先将第一预设数值7与加密基础数值13相乘得到数值91,将数值91与第二预设数值3相加得到数值94,将数值94与第三预设数值26进行除法发运算,得到余数14,将余数14作为加密数值。

14)、将加密数值与第二数值区间中的最小数值相加,得到位于第二数值区间内的一个数值,并作为第二数值区间参考数。

将加密数值14与第二数值区间900000~999999的较小的端点数值900000相加得到900014,并作为第二数值区间参考数。其中,900014位于第二数值区间内900000~999999。

在步骤S304中,根据第二数值区间参考数确定目标事件的口令。

例如,根据第二数值区间参考数900014确定目标事件的口令。

其中,可以直接将第二数值区间参考数作为目标事件的口令。例如,将第二数值区间参考数900014作为目标事件的口令。

图4是根据一示例性实施例示出的一种生成目标事件的口令的装置的框图。参照图4,该装置包括:

获取模块11,用于当目标事件被触发时,获取历史随机数列表;所述历史随机数列表包括已生成的口令对应的随机数;

生成模块12,用于在所述第一数值区间内生成一个不位于所述历史随机数列表中的目标随机数;

确定模块13,用于根据所述目标随机数确定所述目标事件的口令。

在本发明图4所示的实施例中,当目标事件被触发时,获取历史随机数列表;历史随机数列表包括已生成的口令对应的随机数;在第一数值区间内生成一个不位于历史随机数列表中的目标随机数;根据目标随机数确定目标事件的口令。根据本发明实施例的方法,无需事先生成大量不同的随机数值,这样就不会因为事先生成大量不同的随机数值占用较多的时间;以及无需将事先生成的大量的随机数值存储在本地;这样就不会占用本地较多的存储空间。

进一步地,所述装置还包括:

存储模块,用于将所述目标随机数存储到所述历史随机数列表中。

其中,所述生成模块12包括:

第一生成单元,用于生成一个位于所述第一数值区间内的第一数值区间随机数;

判断单元,用于判断所述第一数值区间随机数是否位于所述历史随机数列表中;

确定单元,用于当所述第一数值区间随机数不位于所述历史随机数列表中时,将所述第一数值区间随机数确定为所述目标随机数。

进一步地,所述生成模块12还包括:

所述第一生成单元还用于当所述第一数值区间随机数位于所述历史随机数列表中时,返回所述生成一个位于所述第一数值区间内的第一数值区间随机数的步骤,直至生成的第一数值区间随机数不位于所述历史随机数列表中为止。

进一步地,所述生成模块12还包括:

统计单元,用于当所述第一数值区间随机数位于所述历史随机数列表中时,统计累计生成第一数值区间随机数的生成次数;

比较单元,用于将所述生成次数与预设次数进行比较;

所述第一生成单元还用于当所述执行次数小于所述预设次数时,返回所述生成一个位于所述第一数值区间内的第一数值区间随机数的步骤;

第二生成单元,用于当所述执行次数等于所述预设次数时,在与所述第一数值区间不重合的第二数值区间内,生成一个第二数值区间参考数,并根据所述第二数值区间参考数确定所述目标事件的口令。

其中,所述第二生成单元包括:

确定子单元,用于根据所述第二数值区间中的最大数值与最小数值之间的差值,以及预设备选数值,确定参考数值区间;

选择子单元,用于在未从所述参考数值区间内选择过的数值中选择一个数值作为加密基础数值;

加密子单元,用于按照预设加密方式对所述加密基础数值进行加密,得到小于所述差值的一个加密数值;

相加子单元,用于将所述加密数值与所述第二数值区间中的最小数值相加,得到位于所述第二数值区间内的一个数值,并作为所述第二数值区间参考数。

其中,所述加密子单元具体用于按照如下公式对所述加密基础数值进行加密;

C=(k1m+k2)mod>

其中,在上述公式中,C为所述加密数值,k1为第一预设数值,k2为第二预设数值,m为所述加密基础数值,n为第三预设数值,mod为求余运算符号。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号