CN104407838A - 一种生成随机数及随机数组的方法和设备 - Google Patents
一种生成随机数及随机数组的方法和设备 Download PDFInfo
- Publication number
- CN104407838A CN104407838A CN201410826186.6A CN201410826186A CN104407838A CN 104407838 A CN104407838 A CN 104407838A CN 201410826186 A CN201410826186 A CN 201410826186A CN 104407838 A CN104407838 A CN 104407838A
- Authority
- CN
- China
- Prior art keywords
- random number
- external image
- coordinates
- value
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明的实施方式提供了一种生成随机数的方法。该方法包括:当需要生成随机数时,获取外界图像;根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。通过基于外界图像中坐标点的特征值来生成随机数,本发明的方法不仅降低了所生成的随机数被破解的风险,而且也使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成,此外还无需在设备内再增加对系统内部硬件进行监测的组件。此外,本发明的实施方式提供了一种生成随机数的设备,以及一种生成随机数组的方法和设备。
Description
技术领域
本发明的实施方式涉及数据处理领域,更具体地,本发明的实施方式涉及一种生成随机数的方法和设备,以及,一种生成随机数组的方法和设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,为了完成某些特定的任务或实现特定的功能,一些应用程序在运行的过程中需要生成随机数。例如,某些应用程序为了降低恶意访问用户身份的风险,在用户身份验证时需要生成动态的随机密码或随机验证码提供给用户,这些随机密码和随机验证码需要由随机数来确定。又如,为了更好地贴合现实场景,对于现实场景中某些随机出现的资源,某些应用程序在用户使用时也需要随机提供这些资源,这些资源的种类、数量等需要由生成的随机数来确定。
现有技术中,已经出现一些生成随机数的实现方式。例如,在一种常用的随机数生成方式中,在系统内预先保存一些数据到随机种子库,在需要生成随机数时,从随机种子库中选取一个数据作为随机种子,采用线性同余算法以随机种子作为初始值依次确定随机数的每一数位的数值,再将各个数位的值组合在一起形成随机数。
发明内容
可以理解的是,应用程序在通过生成随机数或随机数组来完成任务时,实际上利用随机数具有随机的、不确定的特性来避免恶意破解的风险,从而提高应用程序任务完成过程的安全性,例如随机密码可以提高应用程序中用户身份的安全性。但是,由于现有技术中是以系统内预先保存在固定的随机种子库中的数据作为随机种子采用固定的计算逻辑(如前述线性同余算法)来生成随机数,在系统受到恶意攻击时,不仅用于生成随机数的固定计算逻辑很可能会被恶意破解,而且预先保存的固定随机种子库也很可能会被恶意获取,因此,在固定随机种子库被恶意获取且固定计算逻辑被恶意破解的情况下,应用程序生成的随机数就不可避免地会被恶意破解,从而导致以随机数来完成的任务安全性降低。
由此可见,在现有技术中,在固定的计算逻辑被破解的情况下,由于难以避免系统内预先保存的固定随机种子库被恶意获取,就会导致应用程序无法保证以随机数来完成任务的安全性,这是非常令人烦恼的过程。
为此,非常需要一种改进的生成随机数的方法和设备以及生成随机数组的方法和设备,以避免采用固定随机种子库中的数据作为随机种子来生成随机数,从而保证应用程序以随机数来完成任务的安全性。
在本上下文中,本发明的实施方式期望提供一种生成随机数的方法和设备,以及,一种生成随机数组的方法和设备。
在本发明实施方式的第一方面中,提供了一种生成随机数的方法,包括:当需要生成随机数时,获取外界图像;根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。
在本发明实施方式的第二方面中,提供了一种生成随机数组的方法,包括:当需要生成随机数组时,确定所述随机数组中包含的随机数个数;以所述随机数个数作为目标随机数数量,采用本发明实施方式第一方面提供的、用于生成随机数的方法,生成所述目标随机数数量的随机数;
将所述随机数数量的随机数组成所述随机数数组。
在本发明实施方式的第三方面中,提供了一种生成随机数的设备,包括:获取模块,用于当需要生成随机数时,获取外界图像;计算模块,用于根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。
在本发明实施方式的第四方面中,提供了一种生成随机数组的设备,包括:确定模块,用于当需要生成随机数组时,确定所述随机数组中包含的随机数个数;生成模块,用于以所述随机数个数作为目标随机数数量,采用本发明实施方式第三方面提供的、用于生成随机数的设备,生成所述目标随机数数量的随机数;组成模块,用于将所述随机数数量的随机数组成所述随机数数组。
根据本发明实施方式的、用于生成随机数及随机数组的方法和设备,由于随机数是基于外界图像中坐标点的特征值来计算的,一方面,外界图像中坐标点的特征值相对于系统内固定随机种子库中的数据来说难以被恶意获取,因此,在系统受到恶意攻击时,即使用于生成随机数的固定计算逻辑被恶意破解,用于生成随机数的外界图像也难以被恶意获取,这就使得所生成的随机数难以被破解,以此随机数来完成任务的安全性也更高;另一方面,相对于声音等外界参数来说,一个外界图像中所包含的坐标点数量非常多,而每个坐标点的特征值都可以用于计算随机数中一个数位的值,可见,仅需获取一个外界图像就可以得到非常多的数位值,因此,无论是所要生成的随机数包含有大量数位的情况还是所要生成的随机数组包含大量随机数的情况,都可以在短时间内通过获取一个外界图像来实现,这就使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成;再一方面,由于随机数生成时只需要获取外界图像而无需对系统内部的硬件状态进行监测,因此,并不需要在设备内再增加对系统内部硬件进行监测的组件,从而显著地降低了应用程序生成随机数在设备上实现的难度。由此可见,本发明实施方式提供的、用于生成随机数及随机数组的方法和设备,不仅可以避免所生成的随机数被破解而使得以此随机数来完成任务的安全性更高,而且也可以使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成,此外还无需在设备内再增加对系统内部硬件进行监测的组件而降低了设备改造的难度。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了本发明的实施方式的一个示例性应用场景的框架示意图;
图2示意性地示出了本发明中生成随机数的方法一实施例的流程图;
图3示意性地示出了本发明实施例中计算随机数一实施方式的流程图;
图4示意性地示出了本发明实施例中一种应用场景示例的示意图;
图5示意性地示出了本发明中生成随机数组的方法一实施例的流程图;
图6示意性地示出了本发明中生成随机数的设备一实施例的流程图;
图7示意性地示出了本发明中生成随机数组的设备一实施例的流程图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种生成随机数的方法和设备以及一种生成随机数组的方法和设备。
在本文中,所涉及的术语“应用程序”表示的是具有数据处理能力的程序,并且,其所处理的数据中存在随机数或随机数组。其中,该随机数或随机数组可以是用于应用程序完成某一或某些任务的任务数据,例如随机数或随机数组可以是用于人与计算机之间进行交互的任务数据,又如随机数或随机数组也可以是仅用于计算机系统内部处理的任务数据,对此本文不作限定。相应地,应用程序可以是用于人与计算机之间进行交互的程序,或者也可以是用于计算机系统内部处理的系统程序,对此本文也不做限定。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术的随机数生成方式之所以容易被恶意破解,原因在于,用于生成随机数的随机种子库和计算逻辑都是在系统内固定的,因此,在系统受到恶意攻击时,不仅用于生成随机数的固定计算逻辑很可能会被恶意破解,而且预先保存的固定随机种子库也很可能会被恶意获取,而在在固定随机种子库被恶意获取且固定计算逻辑被恶意破解的情况下,所生成的随机数就不可避免地会被恶意破解,从而导致以随机数来完成的任务安全性降低。
基于上述发现,本发明的设计思想在于:为了避免随机数的生成被恶意破解而导致以随机数完成的任务安全性降低,可以采用外界图像中坐标点的特征值来计算随机数中各数位的值并以计算出的各数位值合成随机数。一方面,外界图像并非是系统内固定的而是实时获取的,故用于计算随机数的外界图像中坐标点的特征值难以被恶意获取,所以以外界图像来生成随机数可以降低随机数被破解的风险;另一方面,外界图像相对于声音等其他外界参数来说,一个外界图像中所包含的坐标点数量非常多,而每个坐标点的特征值都可以用于计算随机数中的一个数位值,可见,无论是所要生成的随机数包含有大量数位的情况还是所要生成的随机数组包含大量随机数的情况,都可以在短时间内通过获取一个外界图像来实现,这就使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成;再一方面,设备一般都具有能够拍摄外界图像的硬件,例如手机、ipad等移动设备都具有摄像头,而即使对于本身不具有拍摄硬件的设备来说,也只需给这些设备外接一个能够拍摄外界图像的设备即可实现随机数的生成,例如给台式机、膝上型计算机等外接一个摄像头。此外设备可以根据从本地或网络获取的外界图像来生成随机数,这样就无需设备通过硬件拍摄外界图像,由此可见,基于外界图像中坐标点的特征值来生成随机数时并不需要在设备内增加对系统内部硬件进行监测的组件,甚至无需对这些设备进行任何硬件改造,从而降低了在设备的应用程序中实现随机数生成的难度。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,图1是本发明的实施方式的一个示例性应用场景的框架示意图。其中,用户通过用户设备上的客户端102与提供应用程序相关功能的服务器101进行交互。本领域技术人员可以理解,图1所示的框架示意图仅是本发明的实施方式可以在其中得以实现的一个示例。本发明实施方式的适用范围不受到该框架任何方面的限制。
需要注意的是,此处的用户设备可以是现有的、正在研发的或将来研发的、能够通过任何形式的有线和/或无线连接(例如,Wi-Fi、LAN、蜂窝、同轴电缆等)实现其上客户端102与服务器101交互的任何设备,包括但不限于:现有的、正在研发的或将来研发的智能手机、非智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等。客户端102例如当前非常流行的安装于智能手机、平板电脑等硬件设备上的应用程序。
还需要注意的是,此处的服务器101仅是现有的、正在研发的或将来研发的、能够向用户提供服务的设备(可以是软件、硬件、固件或者它们的任何组合)的一个示例。本发明的实施方式在此方面不受任何限制。
基于图1所示的框架,在第一种示例性应用场景下,客户端102当需要生成随机数时,获取外界图像;然后,客户端102根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。其中,该随机数可以用于客户端102完成某一或某些任务,也可以用于客户端102向服务器101发送以完成某一或某些任务。
基于图1所示的框架,在第二种示例性应用场景下,客户端102当需要生成随机数组时,确定所述随机数组中包含的随机数个数;然后,客户端102以所述随机数个数作为目标随机数数量,采用上面所述的用于生成随机数的方法,生成所述目标随机数数量的随机数;再后,客户端102可以将所述随机数数量的随机数组成所述随机数数组。其中,该随机数组可以用于客户端102自身的数据处理以完成某一或某些任务,也可以用于客户端102向服务器101发送以完成某一或某些任务。
基于图1所示的框架,在第三种示例性应用场景下,服务器101当需要生成随机数时,获取外界图像;然后,服务器101根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。其中,该外界图像可以是服务器通过自身获取的,也可以是服务器从客户端102获取的;该随机数组可以用于服务器101自身的数据处理以完成某一或某些任务,也可以用于服务器101向客户端102发送以完成某一或某些任务。
基于图1所示的框架,在第四种示例性应用场景下,服务器101当需要生成随机数组时,确定所述随机数组中包含的随机数个数;然后,服务器101以所述随机数个数作为目标随机数数量,采用上面所述的用于生成随机数的方法,生成所述目标随机数数量的随机数;再后,服务器101可以将所述随机数数量的随机数组成所述随机数数组。其中,该外界图像可以是服务器通过自身获取的,也可以是服务器从客户端102获取的;该随机数组可以用于服务器101自身的数据处理以完成某一或某些任务,也可以用于服务器101向客户端102发送以完成某一或某些任务。
需要说明的是,上述应用场景中,客户端102或服务器101生成的随机数及随机数组,既可以是由其生成并发送给对方设备以便对方设备应用,也可以是在其自身应用。例如,客户端102生成的随机数或随机数组,可以用于在客户端102上存储、显示和/或触发某特定动作的指令,或者,也可以用于客户端102向服务器101发送,以便在服务器101上存储和/或触发某特定动作的指令;同样,服务器101生成的随机数或随机数组,可以用于在服务器101上存储和/或触发某特定动作的指令,或者,也可以用于服务器101向客户端102发送,以便在客户端102上存储、显示和/或触发某特定动作的指令。
另外,在客户端102上生成随机数或随机数组时,可以是只在客户端102上执行相应动作,或者也可以是在客户端102及服务器101同时执行相应的动作。同样,在服务器101上生成随机数或随机数组时,可以是只在服务器101上执行相应动作,或者也可以是在客户端102及服务器101上同时执行相应的动作。
示例性方法
下面结合图1的应用场景,参考图2~5来描述根据本发明示例性实施方式的用于生成随机数的方法,以及用于生成随机数组的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
参见图2,示出了本发明中生成随机数的方法一实施例的流程图。在本实施例中,例如具体可以包括以下步骤:
步骤201、当需要生成随机数时,获取外界图像。
其中,需要生成随机数的时候,例如具体可以是系统响应到随机数的生成指令的时候。其中,随机数的生成指令,可以是由应用程序自动触发的,也可以是由用户在应用程序的操作界面上手动触发的。例如,可以在应用程序的操作界面上设置一个触发随机数生成的按键,当用户点击该按键的时候,则可以触发随机数的生成指令给应用程序。又如,可以在应用程序执行任务的过程中,当需要获取随机数时,则自动触发一个随机数的生成指令。
需要说明的是,对于外界图像,一种可能的获取方式可以是通过设备的拍摄硬件拍摄外界图像。具体地,如果应用程序是在具有外界图像的拍摄硬件的设备上运行时,可以通过启动该拍摄硬件来拍摄外界图像。例如,手机、平板电脑等移动终端内部具有摄像头,可以在响应到生成随机数的指令时开启摄像头来拍摄外界图像。而如果应用程序是在不具有外界图像的拍摄硬件的设备上运行时,可以给应用程序运行所在的设备外接一个外界图像的拍摄设备,通过启动该拍摄设备并接收该拍摄设备基于该外界图像而发送的信号来获取外界图像。例如,台式机一般不具有能够拍摄外界图像的设备,则可以给台式机外接一个摄像头,当响应到生成随机数的指令时,台式机可以启动摄像头并接收摄像头基于外界图像而传送来的信号,从而获取外界图像。此外,对应外界图像,另一种可能的获取方式可以是通过设备本地获取或网络下载外界图像。具体地,当响应到生成随机数的指令时,可以按照用户的选择或系统自动选择从保存在设备本地的图片或从网络上下载的图片作为外界图像,从而获取外界图像。
进一步而言,在本实施例的一些实施方式中,当需要生成随机数时可以同时向用户提供通过拍摄硬件拍摄外界图像及从设备本地获取外界图像的外界图像获取方式,并基于用户的选择来确定通过哪一种方式来获取外界图像。具体地,在图4所示的应用场景示例中提供了一种外界图像获取操作界面示例,其中,当用户点击“拍照”时可以启动设备的拍摄硬件来获取外界图像,当用户点击“相册”时可以将设备本地的图片呈现给用户以便基于用户对设备本地中图片的选择获取外界图像。
可以理解的是,外界图像表示的是应用程序运行所在设备之外的图像,也即,外界图像仅呈现位于该设备外部的影像而并不呈现位于该设备内部的影像,其中,“外界”是相对于设备内部而言的。
步骤202、根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。
其中,外界图像中坐标点的特征值,可以是外界图像中坐标点任意一种属性特征的参数值。例如,外界图像中坐标点的特征值,可以表示所述外界图像中坐标点的颜色值。具体地,外界图像中的坐标点具体可以是像素点,像素点的颜色值具体可以通过下式计算:
Y=65536×B+256×G+R;
其中,Y表示像素点的颜色值,R、G、B表示像素点的RGB通道。
需要说明的是,为了尽量保证随机数的随机性,一般是分别对随机数各个数位上的数值进行计算,再将各个数位上的数值合成为随机数。
在一些实施方式中,随机数各个数位上的数值可以是基于同一外界图像中同一坐标点的特征值来计算,具体地,对于获取的外界图像,从中选取一个坐标点,以该坐标点的特征值按照预设的确定逻辑来分别计算各个数位上的数值。
在另一些实施方式中,为了提高随机数各个数位的数值之间的随机性,随机数各个数位上的数值也可以是基于同一外界图像中各不相同的坐标点的特征值来计算,从而提高各个数位上的数值之间的随机性,也进一步降低了随机数被恶意破解的风险。
具体地,对于基于同一外界图像中各不相同的坐标点的特征值来计算随机数各个数位上的数值,在一些实施方式中,随机数中每个数位上的数值例如可以是以外界图像中一个坐标点的特征值来计算,并且,计算各个数位上的数值所采用的坐标点各不相同,在另一些实施方式中,随机数中每个数位上的数值例如可以是以外界图像中特定坐标点的不同特征值来计算,其中,计算各个数位上的数值所采用的特征值各不相同。更具体地,以每个数位通过外界图像中一个坐标点的特征值来计算的实施方式为例,如图3所示,步骤202例如具体可以包括:
步骤301、以所述随机数的数位个数作为目标数位数量,在所述外界图像中确定所述目标数位数量的目标坐标点。
其中,目标坐标点表示的是特征值用于计算随机数的坐标点。可以理解的是,在本实施方式中,由于每个数位的计算需要采用一个坐标点的特征值并且各个数位的计算所采用的坐标点各不相同,所以,外界图像中用于计算随机数的目标坐标点的数量需要与随机数中数位的数量相同,因此,在外界图像中需要获取目标数位数量的目标坐标点。
需要说明的是,目标坐标点的确定有多种可能的实现方式。
例如,在一些实施方式中,目标坐标点可以是用户自主选择的,也即,所述目标坐标点可以是响应于用户的选取操作而确定的,这样用于生成随机数的目标坐标点由用户自主选择,可以进一步降低随机数被恶意破解的风险。具体地,在外界图像确定之后,可以呈现外界图像以及用户选取目标坐标点的提示信息,当用户在呈现的外界图像上选中坐标点时,可以将选中的坐标点获取为待确定的目标坐标点,而在目标坐标点的数量达到目标数位数量时,响应于用户的确认操作,可将待确定的目标坐标点确定为目标坐标点。
又如,在一些实施方式中,目标坐标点可以是系统内预置坐标值对应的坐标点,也即,所述目标坐标点可以是根据预设的坐标值而确定的,这样每次生成随机数所使用的是相同坐标值的目标坐标点,使得系统逻辑算法得以简化。具体地,系统内可以按照目标数位数量预先设置坐标点的坐标值,在外界图像确定之后,可以选取预先设置的坐标值对应的在外界图像中的坐标点作为目标坐标点。
再如,在一些实施方式中,目标坐标点可以是系统按照一定的逻辑算法动态选取的坐标点,也即,所述目标坐标点可以是根据预设的规则而确定的,这样目标坐标点的坐标值具有一定的动态变化,可以进一步降低随机数被恶意破解的风险。具体地,系统内可以预先设置坐标点的查找规则,在外界图像确定之后,可以按照预设的查找规则在外界图像中查找出目标坐标点。其中,查找规则例如可以是基于坐标点的亮度值、颜色值等特征值来设置,如目标坐标点可以是外界图像中亮度值最大或最小的一部分坐标点,或者,目标坐标点可以是在外界图像中颜色值最大或最小的一个区域内查找,等等。
步骤302、根据所述外界图像在各个所述目标坐标点处的特征值,计算所述随机数各个数位的值,其中,各个不同的所述目标坐标点用于计算所述随机数中各个不同的数位的值。
其中,计算数值的方式,可以依据特征值的种类来设计。例如,对于前述以颜色值作为特征值的情况,可以将目标坐标点的颜色值的个位数值作为该目标坐标点对应数位的数值。需要说明的是,之所以选用目标坐标点的颜色值的个位数值作为当前数位的数值,一方面是考虑到颜色值的个位数值的区间正好与随机数中各个数位的值的区间正好相当,都为0~9中的任意一个整数,另一方面是考虑到即使在外界图像中各坐标点间颜色区别非常小时各坐标点的颜色值的个位数值也会产生很大的变化,这样可以进一步提高随机数的随机性。
可以理解的是,在以目标坐标点的颜色值的个位数值作为该目标坐标点对应数位的数值的实施方式中,算法的实现上可以包括,计算该目标坐标点的颜色值除以10的余数,然后将计算出的余数作为该目标坐标点对应数位的数值。
步骤303、以计算出的各个数位的值组成所述随机数。
可以理解的是,在以各个数位的值组成随机数的过程中,算法的实现上可以以各个数值与各自所在数位的基数相乘之后再相加来实现。例如,则在计算出各数位的数值时,可以采用下式计算随机数的数值:
其中,Y表示随机数的数值,X表示各个数位的数值,10n为各个数位的基数,N表示随机数的数位个数即目标数位数量。这样,在所有数位都计算完毕时,通过上式计算出的Y即为各个数位的数值所组成的随机数。
接着返回图2。
在本实施例中,所生成的随机数可以在各种不同的应用场景下进行使用。在许多应用场景下,应用程序所需要的随机数并没有数值范围的要求。例如,某应用程序需要一个三位的随机数,当其对随机数的数值范围没有要求时,这个随机数可以是000~999之间的任意一个数。而在某些特定的应用场景下,应用程序所需要的随机数必须在某一个数值范围内,而只有生成随机数在这一数值范围内时,应用程序才可以使用这个随机数。例如,某应用程序需要一个三位的随机数,而其要求随机数不能大于256,则当生成的随机数大于256时,则应用程序就无法使用该随机数。为了适应这些对随机数有数值范围要求的应用场景,在本实施例的一种可选的实施方式中,在S202执行完成并生成了随机数之后,还可以响应于所述随机数的数值不属于预设的数值范围,返回执行S201,以便重新生成随机数。而不属于预设数值范围的随机数则可以进行删除。
为了使本领域技术人员更清楚地了解本实施例在实际应用场景中的实现,如图4所示的是本实施例中一种应用场景示例的示意图。在图4中,需要生成的随机数为随机的彩票号码。当需要生成随机的彩票号码时,可以向用户呈现图4中左上方的操作界面,当用户点击“拍照”时可以启动设备的拍摄硬件来获取外界图像,当用户点击“相册”时可以将设备本地的图片呈现给用户以便基于用户对设备本地图片的选择获取外界图像;在获取了外界图像之后,可以向用户呈现图4中右上方的操作界面,以便于用户确认;当用户点击“生成幸运号”时,可以按照系统内预设的坐标值确定出目标坐标点并计算各个目标坐标点对应数位的数值并在外界图像上对应各个目标坐标点呈现,如图4中右下方的操作界面;最后,可以向用户呈现图4中左下方的操作界面,以便向用户呈现随机生成的彩票号码。
通过本实施例的技术方案,由于随机数是基于外界图像中坐标点的特征值来计算的,一方面,外界图像并非是系统内固定的而是实时获取的,故用于计算随机数的外界图像中坐标点的特征值难以被恶意获取,所以以外界图像来生成随机数可以降低随机数被破解的风险;另一方面,相对于声音等其他外界参数来说,一个外界图像中所包含的坐标点数量非常多,而每个坐标点的特征值都可以用于计算随机数中的一个数位值,可见,无论是所要生成的随机数包含有大量数位的情况还是所要生成的随机数组包含大量随机数的情况,都可以在短时间内通过获取一个外界图像来实现,这就使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成;再一方面,由于随机数生成时只需要获取外界图像而无需对系统内部的硬件状态进行监测,因此,并不需要在设备内再增加对系统内部硬件进行监测的组件,从而显著地降低了应用程序生成随机数在设备上实现的难度。由此可见,本实施例的技术方案,不仅可以避免所生成的随机数被破解而使得以此随机数来完成任务的安全性更高,而且也可以使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成,此外还无需在设备内再增加对系统内部硬件进行监测的组件而降低了设备改造的难度。
需要说明的是,有时,应用程序完成任务需要使用的并非是单一的随机数,而是包含多个随机数的随机数组,为此,本发明实施方式还提供了一种生成随机数组的方法。在前述实施方式介绍了本发明中生成随机数的示例性方法之后,下面介绍本发明中生成随机数组的示例性方法的实施方式。
参见图5,示出了本发明中生成随机数组的方法一实施例的流程图。在本实施例中,例如具体可以包括以下步骤:
步骤501、当需要生成随机数组时,确定所述随机数组中包含的随机数个数。
其中,需要生成随机数组的时候,例如可以是系统响应到随机数组的生成指令的时候。其中,随机数组的生成指令,可以是应用程序自动触发的,或者也可以是由用户在应用程序的操作界面上触发的。例如,在用户触发的实施方式中,在应用程序的操作界面上可以提供一个生成随机数组的按键,当用户点击这一按键时,则可以触发一个随机数组的生成指令。可以理解的是,操作界面上用于触发生成随机数组的生成指令的按键,可以是触发以该随机数组来完成的任务的触发按键。例如,在随机数组用于随机选取显示图标的应用场景中,当用户触发显示图标的触发按键时,则可以触发一个生成随机数组的生成指令,并在随机数组生成以后,按照该随机数组去选取显示图标并显示给用户。
步骤502、以所述随机数个数作为目标随机数数量,采用前述生成随机数的方法实施例中任意一种实施方式,生成所述目标随机数数量的随机数。
在本实施例的一些实施方式中,为了充分利用外界图像中具有大量可用于计算随机数的坐标点的优势,以使得外界图像有限的情况下能够实现随机数组的生成,所述目标随机数数量的随机数例如可以是根据同一个外界图像生成的,其中,各个不同的随机数可以是由所述外界图像中不完全相同的目标坐标点的特征值来计算的。具体地,对于以一个目标坐标点用于计算随机数中一个数位上数值的实施方式,可以按照目标随机数数量在同一外界图像中确定出多个目标坐标点组,其中,各个目标坐标点组用于计算随机数组中的各个随机数,对于一个目标坐标点组来说,其中的各个目标坐标点用于计算其随机数中各个数位上的数值,并且,各个目标坐标点组中的目标坐标点不完全相同。其中,在一些实施方式中,确定目标坐标点组的方式,例如可以是用户按照目标随机数数量为随机数组中各个随机数自主选择的,也即,目标坐标点组可以是响应于用户的选取操作而确定的;在另一些实施方式中,确定目标点组的方式,又如可以是系统按照目标随机数数量预先设置的多个坐标值组,各个坐标值组中的坐标点不完全相同。
在本实施例的另一些实施方式中,为了使得随机数组中各个随机数之间的随机性,以进一步降低随机数组被破解的风险,所述目标随机数数量的随机数中各个不同的随机数例如可以是根据各不相同的外界图像生成的。具体地,可以按照目标随机数数量获取多个外界图像,其中,各个外界图像用于计算随机数组中各个随机数。可以理解的是,对于以一个目标坐标点用于计算随机数中一个数位上数值的实施方式,随机数组中各个随机数,可以是以各个外界图像上相同的目标坐标点计算出的,或者也可以是以各个外界图像上不完全相同的目标坐标点计算出的。其中,目标坐标点,例如可以是响应于用户选取操作而确定的,又如可以是按照预设的坐标值而确定的。举例来说,对于以各个外界图像上相同的目标坐标点计算随机数组中各个随机数的实施方式,用于计算随机数的目标坐标点可以是系统按照预设设置的坐标值来确定,例如,对于由三个两位随机数组成的随机数组,可以预先设置了两个目标坐标点的坐标值,在获取到三个外界图像中,则分别从这三个外界图像中提取两个预设目标坐标点的特征值去计算三个随机数;对于以各个外界图像上不完全相同的目标坐标点计算随机数组中各个随机数的实施方式,用于计算随机数的目标坐标点可以是响应于用户的选取操作而确定的,例如,对于由三个两位随机数组成的随机数组,在获取到三个外界图像时,可以将三个外界图像呈现给用户,以便用户分别在三个外界图像上选取两个目标坐标点,然后分别利用三个外界图像上用户选取的目标坐标点的特征值计算三个随机数。
步骤503、将所述随机数数量的随机数组成所述随机数数组。
为了使本领域技术人员更清楚地了解本实施例在实际应用场景中的实现,下面以前述随机生成彩票号码的应用场景为例介绍本实施例中随机数组的应用示例。可以理解的是,在前述图4所示的应用场景示例中,彩票号码是由个位数的号码组成号码组,因此,该号码组可以作为一个随机数来处理,该号码组中的各个号码即是随机数中的各个数位。但是,在实际应用中,彩票号码往往是由多位数的号码组成的号码组,如常见的两位数彩票号码。此时,该号码组可以作为一个随机数组来处理,该号码组中的各个号码即是随机数组中的各个随机数,而每个随机数具有多个数位。当需要生成随机的彩票号码时,可以向用户呈现图4中左上方的操作界面,当用户点击“拍照”时可以启动设备的拍摄硬件来获取外界图像,当用户点击“相册”时可以将设备本地的图片呈现给用户以便基于用户对设备本地图片的选择获取外界图像;在获取了外界图像之后,可以向用户呈现图4中右上方的操作界面,以便于用户确认;当用户点击“生成幸运号”时,可以按照系统内预设的各个坐标值组确定出各个目标坐标点组并计算各个目标坐标点组对应的随机数呈现给用户;最后,可以以各个随机数作为各个号码组成一个号码组,并将该号码组作为随机生成的彩票号码向用户呈现。
通过本实施例的技术方案,不仅可以避免所生成的随机数组被破解而使得以此随机数组来完成任务的安全性更高,而且也可以使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成,此外还无需在设备内再增加对系统内部硬件进行监测的组件而降低了设备改造的难度。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图6~7对本发明示例性实施方式的、用于生成随机数及生成随机数组的设备进行描述。
参见图6,示出了本发明中生成随机数的设备一实施例的结构图。在本实施例中,所述设备例如具体可以包括:
获取模块601,用于当需要生成随机数时,获取外界图像;
计算模块602,用于根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。
在本实施例的一些实施方式中,可选的,所述外界图像中坐标点的特征值例如具体可以为所述外界图像中坐标点的颜色值。
在本实施例的另一些实施方式中,可选的,所述计算模块602例如具体可以包括:
确定子模块,用于以所述随机数的数位个数作为目标数位数量,在所述外界图像中确定所述目标数位数量的目标坐标点;
计算子模块,用于根据所述外界图像在各个所述目标坐标点处的特征值,计算所述随机数各个数位的值,其中,各个不同的所述目标坐标点用于计算所述随机数中各个不同的数位的值;
组成子模块,用于以计算出的各个数位的值组成所述随机数。
在本实施例的又一些实施方式中,可选的,结合包括确定子模块、计算子模块和组成子模块的计算模块602的实施方式,所述目标坐标点例如具体是响应于用户的选取操作而确定的,或,所述目标坐标点又如具体可以是根据预设的坐标值而确定的。
在本实施例的再一些实施方式中,可选的,所述设备例如还可以包括:
触发模块,用于响应于所述随机数的数值不属于预设的数值范围,触发所述获取模块,以便重新生成随机数。
参见图7,示出了本发明中生成随机数组的设备一实施例的结构图。在本实施例中,所述设备例如具体可以包括:
确定模块701,用于当需要生成随机数组时,确定所述随机数组中包含的随机数个数;
生成模块702,用于以所述随机数个数作为目标随机数数量,采用前述生成随机数的设备实施例中任意一种实施方式,生成所述目标随机数数量的随机数;
组成模块703,用于将所述随机数数量的随机数组成所述随机数数组。
在本实施例的一些实施方式中,可选的,所述目标随机数数量的随机数例如具体可以是根据同一个外界图像生成的,各个不同的随机数可以是由所述外界图像中不完全相同的目标坐标点的特征值来计算的。
在本实施例的另一些实施方式中,可选的,所述目标随机数数量的随机数中,各个不同的随机数例如具体可以是根据各不相同的外界图像生成的。
通过本发明中各设备实施例的技术方案,不仅可以避免所生成的随机数被破解而使得以此随机数来完成任务的安全性更高,而且也可以使得包含大量数位的随机数以及包含大量随机数的随机数组都更易于生成,此外还无需在设备内再增加对系统内部硬件进行监测的组件而降低了设备改造的难度。
应当注意,尽管在上文详细描述中提及了用于生成随机数及随机数组的设备的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (16)
1.一种生成随机数的方法,包括:
当需要生成随机数时,获取外界图像;
根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。
2.根据权利要求1所述的方法,其中,所述外界图像中坐标点的特征值为所述外界图像中坐标点的颜色值。
3.根据权利要求1所述的方法,其中,所述根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数,包括:
以所述随机数的数位个数作为目标数位数量,在所述外界图像中确定所述目标数位数量的目标坐标点;
根据所述外界图像在各个所述目标坐标点处的特征值,计算所述随机数各个数位的值,其中,各个不同的所述目标坐标点用于计算所述随机数中各个不同的数位的值;
以计算出的各个数位的值组成所述随机数。
4.根据权利要求3所述的方法,其中,所述目标坐标点是响应于用户的选取操作而确定的,或,所述目标坐标点是根据预设的坐标值而确定的。
5.根据权利要求1所述的方法,还包括:
响应于所述随机数的数值不属于预设的数值范围,返回执行所述获取外界图像,以便重新生成随机数。
6.一种生成随机数组的方法,包括:
当需要生成随机数组时,确定所述随机数组中包含的随机数个数;
以所述随机数个数作为目标随机数数量,采用如权利要求1~5任意一项所述的方法,生成所述目标随机数数量的随机数;
将所述随机数数量的随机数组成所述随机数数组。
7.根据权利要求6所述的方法,其中,所述目标随机数数量的随机数是根据同一个外界图像生成的,各个不同的随机数是由所述外界图像中不完全相同的目标坐标点的特征值来计算的。
8.根据权利要求6所述的方法,其中,所述目标随机数数量的随机数中,各个不同的随机数是根据各不相同的外界图像生成的。
9.一种生成随机数的设备,包括:
获取模块,用于当需要生成随机数时,获取外界图像;
计算模块,用于根据所述外界图像中坐标点的特征值,为所述随机数计算各个数位的值,并将所述各个数位的值合成为所述随机数。
10.根据权利要求9所述的设备,其中,所述外界图像中坐标点的特征值为所述外界图像中坐标点的颜色值。
11.根据权利要求9所述的设备,其中,所述计算模块包括:
确定子模块,用于以所述随机数的数位个数作为目标数位数量,在所述外界图像中确定所述目标数位数量的目标坐标点;
计算子模块,用于根据所述外界图像在各个所述目标坐标点处的特征值,计算所述随机数各个数位的值,其中,各个不同的所述目标坐标点用于计算所述随机数中各个不同的数位的值;
组成子模块,用于以计算出的各个数位的值组成所述随机数。
12.根据权利要求11所述的设备,所述目标坐标点是响应于用户的选取操作而确定的,或,所述目标坐标点是根据预设的坐标值而确定的。
13.根据权利要求9所述的设备,还包括:
触发模块,用于响应于所述随机数的数值不属于预设的数值范围,触发所述获取模块,以便重新生成随机数。
14.一种生成随机数组的设备,包括:
确定模块,用于当需要生成随机数组时,确定所述随机数组中包含的随机数个数;
生成模块,用于以所述随机数个数作为目标随机数数量,采用如权利要求8~11任意一项所述的设备,生成所述目标随机数数量的随机数;
组成模块,用于将所述随机数数量的随机数组成所述随机数数组。
15.根据权利要求14所述的设备,其中,所述目标随机数数量的随机数是根据同一个外界图像生成的,各个不同的随机数是由所述外界图像中不完全相同的目标坐标点的特征值来计算的。
16.根据权利要求14所述的设备,其中,所述目标随机数数量的随机数中,各个不同的随机数是根据各不相同的外界图像生成的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410826186.6A CN104407838B (zh) | 2014-12-25 | 2014-12-25 | 一种生成随机数及随机数组的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410826186.6A CN104407838B (zh) | 2014-12-25 | 2014-12-25 | 一种生成随机数及随机数组的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407838A true CN104407838A (zh) | 2015-03-11 |
CN104407838B CN104407838B (zh) | 2018-11-27 |
Family
ID=52645471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410826186.6A Active CN104407838B (zh) | 2014-12-25 | 2014-12-25 | 一种生成随机数及随机数组的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407838B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447154A (zh) * | 2015-11-30 | 2016-03-30 | 中国联合网络通信集团有限公司 | 一种熵池的更新方法和更新系统 |
CN107241635A (zh) * | 2017-04-21 | 2017-10-10 | 武汉斗鱼网络科技有限公司 | 一种弹幕位置切换的方法及装置 |
CN111163082A (zh) * | 2019-12-27 | 2020-05-15 | 咪咕文化科技有限公司 | 一种验证码的生成、验证方法、电子设备及存储介质 |
US11416219B2 (en) | 2019-07-15 | 2022-08-16 | Realtek Semiconductor Corporation | True random number generator and method for generating true random number |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101384993A (zh) * | 2006-02-15 | 2009-03-11 | 杰克里普托有限公司 | 产生密码学随机数发生器种子的方法和设备 |
CN103502931A (zh) * | 2011-05-03 | 2014-01-08 | 挪佛麦迪哥股份公司 | 随机数生成器 |
CN103617020A (zh) * | 2013-12-23 | 2014-03-05 | 乐得科技有限公司 | 一种应用程序中生成随机数的方法和设备 |
-
2014
- 2014-12-25 CN CN201410826186.6A patent/CN104407838B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101384993A (zh) * | 2006-02-15 | 2009-03-11 | 杰克里普托有限公司 | 产生密码学随机数发生器种子的方法和设备 |
CN103502931A (zh) * | 2011-05-03 | 2014-01-08 | 挪佛麦迪哥股份公司 | 随机数生成器 |
CN103617020A (zh) * | 2013-12-23 | 2014-03-05 | 乐得科技有限公司 | 一种应用程序中生成随机数的方法和设备 |
Non-Patent Citations (1)
Title |
---|
汪琳等: "一种改进的求解RACP问题的路径重连方法研究", 《科学技术与工程》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447154A (zh) * | 2015-11-30 | 2016-03-30 | 中国联合网络通信集团有限公司 | 一种熵池的更新方法和更新系统 |
CN105447154B (zh) * | 2015-11-30 | 2019-05-21 | 中国联合网络通信集团有限公司 | 一种熵池的更新方法和更新系统 |
CN107241635A (zh) * | 2017-04-21 | 2017-10-10 | 武汉斗鱼网络科技有限公司 | 一种弹幕位置切换的方法及装置 |
US11416219B2 (en) | 2019-07-15 | 2022-08-16 | Realtek Semiconductor Corporation | True random number generator and method for generating true random number |
CN111163082A (zh) * | 2019-12-27 | 2020-05-15 | 咪咕文化科技有限公司 | 一种验证码的生成、验证方法、电子设备及存储介质 |
CN111163082B (zh) * | 2019-12-27 | 2022-03-25 | 咪咕文化科技有限公司 | 一种验证码的生成、验证方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104407838B (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110428058B (zh) | 联邦学习模型训练方法、装置、终端设备及存储介质 | |
CN110383274B (zh) | 识别设备的方法、装置、系统、存储介质、处理器和终端 | |
CN111738238B (zh) | 人脸识别方法和装置 | |
CN109584432A (zh) | 对象选取方法及装置、电子设备 | |
CN112800466B (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
CN103617020B (zh) | 一种应用程序中生成随机数的方法和设备 | |
CN105187206B (zh) | 身份验证方法及装置 | |
CN104407838A (zh) | 一种生成随机数及随机数组的方法和设备 | |
CN108989269A (zh) | 获取验证码的方法、装置和系统 | |
CN111340247A (zh) | 纵向联邦学习系统优化方法、设备及可读存储介质 | |
TW201734891A (zh) | 基於驗證碼的驗證處理方法及裝置 | |
KR100629495B1 (ko) | 그룹 키 생성방법 | |
CN109902611A (zh) | 目标证件的检测方法、装置和终端设备 | |
CN109816543A (zh) | 一种图像查找方法及装置 | |
CN112953705B (zh) | 密钥选择方法及装置、计算机可存储介质 | |
CN108648226A (zh) | 用于生成信息的方法和装置 | |
CN112468521B (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
CN110163794B (zh) | 图像的转换方法、装置、存储介质和电子装置 | |
CN110458507A (zh) | 一种公众号业务托管的授权方法和装置 | |
CN112598611A (zh) | 一种凸字体银行卡号图像的合成方法、识别方法及装置 | |
CN112989308A (zh) | 账户的认证方法、装置、设备及介质 | |
KR102445530B1 (ko) | 공공복지 활동의 시각화를 위한 방법 및 장치 | |
CN103957104A (zh) | 动态令牌防钓鱼方法及装置 | |
CN109242892B (zh) | 用于确定图像间的几何变换关系的方法和装置 | |
TW202004545A (zh) | 一種密碼的獲取方法、交易設備和終端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100190, Zhongguancun 1 East Road, Beijing, Haidian District Tsinghua Science and Technology Park, building 8, building 21, enlightenment technology building, A Applicant after: NetEase Lede Technology Co., Ltd. Address before: 401, room 4, building 599, 310052 business road, Changhe Road, Binjiang District, Zhejiang, Hangzhou Applicant before: Lede Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |