Articles of 随机

机器学习algorithm可以检测数字序列的随机性吗?

这里的随机性意味着伪随机性,就像Linux的随机数生成器一样。 例如,我有100-1000个数组,每个数组包含由Linux伪随机数生成器生成的10000个随机整数。 现在给出一个新的整数序列,如果像分类或聚类这样的机器学习algorithm能够检测这个整数序列是否是像以前的训练数据那样的伪随机数序列? 出于某种原因,我并不关心给定序列的实际随机性,我只想知道这个给定的序列是否由某个特定的linux伪随机整数生成器生成。 假设Linux RNG确实有一个归纳函数来产生一个伪随机整数序列,那么我们是否可以根据这个RNG产生的现有随机序列来预测现有的整数序列是否是由这个RNG产生的呢?

从命令行中从一个非常大的文件中select一个随机行

假设你有一个非常大的文件,那么通过所有的行,或者慢下来会是很昂贵的。 你将如何随机select一条线(最好是从命令行或Python)?

linux随机function

我正在使用Linux random()函数在CentOS 5.2中产生随机消息。 我想在3次随机调用后重置种子。 换句话说,我希望在第一次呼叫和第四次呼叫中有相同的输出。 有没有办法将rand()函数设置为初始状态? 或者可以知道我可以做的其他function吗?

mt19937在C ++中依赖于平台的状态?

我想将std :: mt19937随机数发生器的状态保存在一个C ++程序中,这样我就可以在稍后的阶段以相同的“随机状态”恢复我的程序。 我也想在不同的平台(Linux和Mac)上使用我的程序。 考虑下面的最简单的例子,我简单地把当前状态写入stdout: #include <iostream> #include <random> using namespace std; static mt19937 rng; int main() { seed_seq seeder{1234}; rng = mt19937(seeder); cout << "mt1: " << rng() << endl; cout << "mt2: " << rng() << endl; cout.imbue(locale("en_US.UTF-8")); cout << rng << endl; } 我的问题是,这将产生不同的输出状态,这取决于我编译这个平台。 在Linux系统(g ++ 7.1.0)上,我得到: mt1: 2684129121 mt2: 3957864051 […]

PHP – 为电子邮件闭环validation创build随机哈希string

我目前正在进行一项需要闭环电子邮件validation的项目。 作为过程的一部分,我需要生成一个随机的哈希string,可以附加到发送给用户的链接。 当他们点击链接时,他们将被引导到我的网站,届时应用程序将确认散列并完成注册过程。 对于我所有的哈希,我一直在使用: hash('sha256', $string); 但是对于这个过程,我需要用一个随机值来种子$string 。 我有Zend框架可用,正在寻找这样的事情: $crypt = new Zend_Filter_Encrypt_Mcrypt(array()); $hash = hash('sha256', $crypt->getVector()); 我的问题是,这是一个生成随机哈希码可行的algorithm? 这里是Zend_Filter_Encrypt_Mcrypt::setVector()方法(生成通过getVector()返回的值: public function setVector($vector = null) { $cipher = $this->_openCipher(); $size = mcrypt_enc_get_iv_size($cipher); if (empty($vector)) { $this->_srand(); if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' && version_compare(PHP_VERSION, '5.3.0', '<')) { $method = MCRYPT_RAND; } else { if (file_exists('/dev/urandom') || […]

让linux来缓冲/ dev / random

我需要为我正在编写的应用程序提供高质量的随机数据。 Linux为此提供了/ dev / random文件,这是理想的; 然而,因为我的服务器是单服务的虚拟机,它的熵源非常有限,这意味着/ dev / random很快就会耗尽。 我注意到,如果我从/ dev / random读取,在等待更多的熵的时候,我将只能得到16个左右的随机字节。 [duke@poopz ~]# hexdump /dev/random 0000000 f4d3 8e1e 447a e0e3 d937 a595 1df9 d6c5 <process blocks…> 如果我终止这个过程,走开一个小时,重复这个命令,再次只产生16个字节的随机数据。 但是 ,如果我让命令运行的时间相同,则会收集更多的随机数据。 我从这里假定,在一个给定的时间段内,系统会产生大量的熵,但是如果你实际上是从/ dev / random读取的,那么Linux只会利用它,如果不是这样的话,它就会丢弃它。 如果是这样的话,我的问题是: 是否可以将Linuxconfiguration为缓冲/ dev / random,以便从中读取高质量随机数据的大量突发? 作为我的程序的一部分,我将缓冲/ dev / random并不困难,但是我觉得在系统级这样做会更加优雅。 我也想知道,如果让Linux在内存中缓冲它的随机数据会有安全隐患。

为什么Linux的IPv4堆栈需要随机数字?

我想问一个关于Linux内核中的IPv4片段pipe理器(net / ipv4 / inet_fragment.c)的问题。 我不明白为什么结构inet_frags(include / net / inet_frag.h)有一个“rnd”字段,显然填充了随机数字。 我的意思是,我不指望我的IPv4堆栈以随机顺序重组我的数据包^^。 你能帮我吗? Thx提前。 (内核3.4.4)

在Linux上以非阻塞模式读取文件

当以非阻塞模式打开文件/ dev / urandom时,读取时仍然阻塞。 为什么阅读电话仍然阻塞。 #include <stdlib.h> #include <string.h> #include <unistd.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h> int main(int argc, char *argv[]) { int fd = open("/dev/urandom", O_NONBLOCK); if (fd == -1) { printf("Unable to open file\n"); return 1; } int flags = fcntl(fd, F_GETFL); if (flags & O_NONBLOCK) { printf("non […]

这个基于RANDOM的命令在bash中是什么意思?

我使用RANDOMvariables来生成一个由8个字符组成的string,但是我不完全理解它是如何工作的。 命令的结构是${char:offset:length} : char="1234abcdABCD" echo -n ${char:RANDOM%${#char}:8} 有人可以解释它是如何工作的? 尤其是RANDOM%${#char} ? 在这种情况下, %和#是什么意思?

便携的方式来获取在Linux上的C启动随机种子

题 有没有办法在Linux上用c构build两个单独的进程来从全局位置获取某种每引导的伪随机种子/值? 背景 总之,我有两个简单的过程,想通过一个随机命名的Unix域套接字相互交谈,就像这样: 引导#1:/ var / run / abcd 启动#2:/ var / run / sdfs 这个想法是随机化文件名,这两个进程将在启动时使用,但他们需要知道某种方式来确定共同的path,而无需事先互相交谈。 到目前为止工作 我已经尝试使用init进程的init ,通过有效地执行以下命令在c : cat /proc/1/stat | cut -d ' ' -f22 但是,从引导到引导的这个值通常是相同的,所以它不是随机的。 我正在考虑编写一个简单的Linux内核模块来提供这个价值,但这似乎是矫枉过正的。 问题(还原) 是否有一些随机数据的来源在单次启动时保持不变,但是不能在随后的启动过程中使用,我可以通过Linux中的非根进程读取这些数据?