为什么会有人使用System.Random中的“标准”随机数生成器,而不是始终使用System.Security.Cryptography.RandomNumberGenerator (或其子类,因为RandomNumberGenerator是抽象的)中的密码安全的随机数生成器? Nate Lawson在分钟13:11的Google Tech Talk演讲中表示“ encryption反击 ”不会使用来自Python,Java和C#的“标准”随机数生成器,而是使用encryption安全版本。 我知道随机数发生器的两个版本之间的区别(见问题101337 )。 但是,有什么理由不总是使用安全的随机数发生器? 为什么要使用System.Random? 性能可能?
我有兴趣创build一个非常简单,高(密码)质量的随机密码生成器。 有一个更好的方法吗? import os, random, string length = 13 chars = string.ascii_letters + string.digits + '!@#$%^&*()' random.seed = (os.urandom(1024)) print ''.join(random.choice(chars) for i in range(length))
什么是使用System.Security.Cryptography.RNGCryptoServiceProvider vs System.Random利弊。 我知道RNGCryptoServiceProvider是“更随机的”,即对黑客的可预测性较低。 任何其他的利弊? 更新: 根据回答,以下是到目前为止使用RNGCryptoServiceProvider优缺点: 优点 RNGCryptoServiceProvider是一个更强的密码随机数,这意味着它将更好地确定encryption密钥等。 缺点 Random更快,因为它是一个更简单的计算; 当在密码随机性不重要的模拟或长时间计算中使用时,应该使用它。
有没有办法根据最小和最大生成一个随机数? 例如,如果min是1,最多20,它应该产生1到20之间的任何数字,包括1和20?
我有一个名为Student的对象,它有studentName , studentId , studentAddress等。对于studentId ,我必须生成由七个数字字符组成的随机string,例如。 studentId = getRandomId(); studentId = "1234567" <– from the random generator. 我必须确保没有重复的ID。
我想为testing目的创build随机列表的整数。 数字的分布并不重要。 计数唯一的是时间 。 我知道生成随机数是一项耗时的工作,但是必须有更好的方法。 这是我目前的解决scheme: import random import timeit # random lists from [0-999] interval print [random.randint(0,1000) for r in xrange(10)] # v1 print [random.choice([i for i in xrange(1000)]) for r in xrange(10)] # v2 # measurement: t1 = timeit.Timer('[random.randint(0,1000) for r in xrange(10000)]','import random') # v1 t2 = timeit.Timer('random.sample(range(1000), 10000)','import random') # v2 […]
我正在等待另一位开发人员完成一段代码,该代码将返回值为-1,0或1的np数组形状(100,2000)。 与此同时,我想随机创build一个具有相同特性的数组,以便我可以在开发和testing中获得先机。 问题是,我希望这个随机创build的数组每次都是相同的,这样我就不会对每次重新运行我的进程时不断更改其值的数组进行testing。 我可以像这样创build我的数组,但有没有一种方法来创build它,以便每次都是一样的。 我可以腌制这个物体,把它取下来,但是不知道是否有另一种方法。 r = np.random.randint(3, size=(100, 2000)) – 1
在生成图表并显示不同的数据集时,通常按照颜色区分这些集合是一个好主意。 所以一行是红色的,另一行是绿色的,依此类推。 问题是,当数据集的数量是未知数时,需要随机生成这些颜色,并且通常它们最终彼此非常接近(例如,绿色,浅绿色)。 任何关于如何解决这个问题的想法,以及如何产生截然不同的颜色? 如果有任何示例(如果您发现更容易,请随时讨论问题和解决scheme,而不是示例),那么我将会很棒。
我接收到一个string列表作为input,并且需要返回一个带有相同string的列表,但是按照随机顺序。 我必须允许重复 – 相同的string可能在input中出现一次或多次,并且在输出中必须出现相同的次数。 我看到了几种“蛮力”的方法(使用循环,上帝禁止),其中我正在使用的其中之一。 然而,认识Python可能是一个很酷的单线程完成工作,对吧?
我怎样才能生成一个(伪)随机字母数字string,如:'d79jd8c'在PHP中?