Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么有些random()函数被认为是“不安全的”_Random - Fatal编程技术网

为什么有些random()函数被认为是“不安全的”

为什么有些random()函数被认为是“不安全的”,random,Random,我听到各地的人都被警告,为了安全起见,不要依赖语言的随机函数来生成随机数或字符串序列。Java甚至有一个SecureRandom类。为什么会这样 可以提前确定的伪随机数可能导致易受a攻击的安全漏洞。可以提前确定的伪随机数可能导致易受a攻击的安全漏洞。几乎每个随机数生成器都是“伪随机”的,因为它使用随机数表或a可预测的公式。种子有时用于在特定点启动随机序列,例如种子随机定时器 这在基础编程时代尤其流行,因为它的随机数生成器总是以完全相同的数字序列启动,这使得它无法用于任何类型的GUID生成 当时,

我听到各地的人都被警告,为了安全起见,不要依赖语言的随机函数来生成随机数或字符串序列。Java甚至有一个SecureRandom类。为什么会这样

可以提前确定的伪随机数可能导致易受a攻击的安全漏洞。

可以提前确定的伪随机数可能导致易受a攻击的安全漏洞。

几乎每个随机数生成器都是“伪随机”的,因为它使用随机数表或a可预测的公式。种子有时用于在特定点启动随机序列,例如种子随机定时器

这在基础编程时代尤其流行,因为它的随机数生成器总是以完全相同的数字序列启动,这使得它无法用于任何类型的GUID生成


当时,Z-80微处理器有一个真正的随机数发生器,尽管它只是一个介于0和127之间的数字。它使用处理器周期函数,不可预测。

几乎每个随机数生成器都是“伪随机”的,因为它使用随机数表或可预测公式。种子有时用于在特定点启动随机序列,例如种子随机定时器

这在基础编程时代尤其流行,因为它的随机数生成器总是以完全相同的数字序列启动,这使得它无法用于任何类型的GUID生成


当时,Z-80微处理器有一个真正的随机数发生器,尽管它只是一个介于0和127之间的数字。它使用处理器周期函数,不可预测。

随机数的可预测性是一个大问题。大多数随机函数都是从时间中求出它们的值。给定一组正确的条件,您可能会得到两个相同的大值随机数

在windows.NET世界中,可以通过基础win32 API在System.Security.Cryptography.RandomNumberGenerator中找到CPRNG加密安全的伪随机数生成器
在Linux中有一个随机设备

随机数的可预测性是一个大问题。大多数随机函数都是从时间中求出它们的值。给定一组正确的条件,您可能会得到两个相同的大值随机数

在windows.NET世界中,可以通过基础win32 API在System.Security.Cryptography.RandomNumberGenerator中找到CPRNG加密安全的伪随机数生成器
在Linux中有一个随机设备

当人们谈论预测随机数生成器的输出时,他们甚至不需要获得实际的下一个数字。即使是一些微妙的事情,比如注意到随机数的分布不均匀,或者它们从来不会连续两次产生相同的数字,或者总是设置了第5位,也可以让基于猜测随机数的攻击从耗时数年变为耗时数天

一般来说,也有一个权衡。如果没有特定的硬件,快速生成大量的随机数可能非常困难,因为计算机没有足够的随机性,所以它必须伪造随机数


如果你不是将随机性用于安全加密、密码等,而是用于模拟或数字工作,那么它们是否可预测并不重要,只是它们在统计上是随机的。

当人们谈论预测随机数生成器的输出时,他们甚至不需要知道下一个号码。即使是一些微妙的事情,比如注意到随机数的分布不均匀,或者它们从来不会连续两次产生相同的数字,或者总是设置了第5位,也可以让基于猜测随机数的攻击从耗时数年变为耗时数天

一般来说,也有一个权衡。如果没有特定的硬件,快速生成大量的随机数可能非常困难,因为计算机没有足够的随机性,所以它必须伪造随机数


如果你不是将随机性用于安全加密、密码等,而是用于模拟或数字工作,那么它们是否可预测并不重要,只是它们在统计上是随机的。

那么像sha256strrandom.randomint*100000000.hexdigest这样的东西只是要求安全威胁?通过生成一个随机字符串salt并将其包含在散列输入中可以缓解这种情况吗?我不太擅长加密,因此不能自信地说,但我认为这取决于特定实现如何生成随机数。例如,我认为默认的python是确定性的。考虑到散列输出,盐类有助于使人们更难猜测输入,但这与
首先,随机数有多好。所以像sha256strrandom.randomint*1000000000.hexdigest这样的东西只是要求安全威胁?通过生成一个随机字符串salt并将其包含在散列输入中可以缓解这种情况吗?我不太擅长加密,因此不能自信地说,但我认为这取决于特定实现如何生成随机数。例如,我认为默认的python是确定性的。考虑到散列输出,盐类有助于让人们更难猜测输入,但这与随机数的好坏有点不同。