random°ª »ý¼º ÇÔ¼ö
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>random_read2



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

¼³¸í

random_readÀÇ random()ÇÔ¼ö ¹öÁ¯ÀÌ´Ù. Áߺ¹µÇÁö ¾Ê´Â random seed °ªÀ» »ý¼ºÇϱâ À§Çؼ­ gettimeofday()ÀÇ ½Ã°£°ªÀ» ÀÌ¿ëÇß´Ù.

»ç¿ë¹æ¹ý

int getrandom(void *rand, size_t size); 
 
  1. rand : ·£´ý°ªÀ» ÀúÀåÇÒ °ø°£
  2. size : sizeÅ©±â ¸¸Å­ rand¿¡ ÀúÀåÇÑ´Ù.

#include "myrand.h" 
 
int main() 
{ 
    char ran[32] = {0x00,}; 
    int i; 
    getrandom(ran, 32); 
 
    for(i = 0; i < 32; i++) 
    { 
        printf("%c\n", ran[i]); 
    } 
} 
 
À§ÀÇ ÄÚµå´Â 32¹ÙÀÌÆ® Å©±â(512bit)ÀÇ ·£´ý°ªÀ» »ý¼ºÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ Ãâ·Â °ªÀ» Å×½ºÆ® ÇØ º¼ ¼ö ÀÖ´Ù. ÇϳªÀÇ ¶óÀÎÀ¸·Î Ãâ·ÂµÇÁö¸¸ ½±°Ô º¸¿©ÁÖ±â À§Çؼ­ °³Çà ½ÃÄ×´Ù.
# ./myrand | mimencode  
WQpsCtgKLAqYCsQKpgprChsKTwrHCjcKkgorCp4KQwqvCogKCgo6CtUKQgohCngKZQrNCtAK 
DAqrClIKRwp3Cg== 
 

ÄÚµå

#include <sys/time.h> 
#include <sys/types.h> 
#include <unistd.h> 
#include <string.h> 
#include <stdio.h> 
#include <string.h> 
 
int getrandom(void *rand, size_t size) 
{ 
    struct timeval tp; 
    int i = 0; 
    int ran; 
 
    gettimeofday(&tp, NULL); 
    srandom(tp.tv_sec | tp.tv_usec); 
 
    while(1) 
    { 
        if (!(size / (4*(i+1)))) break; 
 
        ran = random(); 
        memcpy(rand+(i*4), (void *)&ran, 4); 
        i++; 
    } 
} 
 

Âü°í ¹®Çå

  1. random_read
  2. /dev/randomÀ» ÀÌ¿ëÇÑ ·£´ý°ª »ý¼º

º¯°æ»çÇ×

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.