生成随机字节流

use*_*126 7 c

我正在测试一个使用UDP/TCP将数据包发送到远程服务器的网络程序,为此,我想生成一些随机字节流.

这是功能:

unsigned char *gen_rdm_bytestream(int num_bytes)
{
    unsigned char *stream = malloc(num_bytes);
    /*
     * here how to generate?
     */
    return stream;
}
Run Code Online (Sandbox Code Playgroud)

md5*_*md5 7

对于每个字节,您可以调用随机数生成器函数.C标准提供了该功能rand.在使用之前,您应该通过调用来初始化随机序列srand.

gen_rdm_bytestream 可能看起来像那样:

#include <stdlib.h>
#include <time.h>

unsigned char *gen_rdm_bytestream (size_t num_bytes)
{
  unsigned char *stream = malloc (num_bytes);
  size_t i;

  for (i = 0; i < num_bytes; i++)
  {
    stream[i] = rand ();
  }

  return stream;
}

srand ((unsigned int) time (NULL));
Run Code Online (Sandbox Code Playgroud)

由于stream是无符号的,如果返回的值rand大于UCHAR_MAX,则将减少(模数UCHAR_MAX).因此,您将获得0到255之间的伪随机数.