/ dev / (u) random을 사용하는 방법


32

/dev/(u)randomUbuntu 또는 * nix 시스템에서 어떻게 사용할 수 있습니까?

나는 이것을 시도했지만 허가가 거부되었다고 말한다.
참고 : 나는 또한 루트로 시도했다.

/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random

2
이 명령은 일반적으로 양질의 임의 데이터가 필요할 때 일반적으로 좋은 암호를 만들기 위해 사용해야합니다. 그렇지 않으면 거기에 예를 들어, 쉘 환경 '변수'가 더 가벼운 대안 RANDOM임의의 양의 정수 번호를 만들 : echo $RANDOM, 프로그램은 shuf재생 목록에서 임의의 순서로 예를 들어, 플레이, 랜덤 순열을 생성 할 수 있습니다.
sudodus

답변:


54

장치와 같은 파일이므로 cat 또는 복사와 같은 작업을 수행 할 수 있습니다. 예를 들어 :

dd if=/dev/urandom of=~/urandom_test count=4 bs=1024

4K의 임의 바이트를 포함하는 파일을 작성합니다.

cat /dev/urandom > ~/urandom_test2 

Ctrl-C를 누를 때까지 해당 파일에 무작위 바이트를 계속 기록합니다. 성능이 낮은 시스템에서는이 작업을 수행하지 마십시오 ...

head -30 /dev/urandom > ~/urandom_test3

임의의 바이트로 30 줄 작성


1
그때 공감하십시오!
aychedee

5
나는한다면 내 담당자> 15
네르 KORKMAZ

1
참고 : 저 성능 시스템에서 cat / dev / urandom> ~ / urandom_test2하지 마십시오-> 시스템을 정지시키는
Caner Korkmaz

1
글쎄 .. 정말 당신의 라인 정의에 달려 있습니다. 내 정의는 bytes terminated by a \n입니다. 무엇 당신이야? head -30 /dev/urandom임의의 바이트 30 줄을 줄 것입니다. 그 줄의 길이는 확실히 임의적입니다. wc -l확신이 없으면 출력 파일에서 실행 해보 십시오.
aychedee

3
/dev/urandom당 32 MiB 크기로 제한 read()하고 dd더 읽기 다시 시도하지 않을 것이다는 일단 /dev/urandom수율 그 32 MiB 크기, 그래서 당신은 전화가 ddiflag=fullblock. 참조 DD 대신 1기가바이트의 32메가바이트 임의의 파일 생산
세르지 Kolodyazhnyy

14

임의의 바이트 얻기

특정 수의 임의 바이트가 필요한 경우에서 해당 바이트 수를 읽으십시오 /dev/urandom.
임의의 숫자를 읽을 수있는 파일과 같은 "특수 파일"입니다.

끝까지 읽으려고 시도 하지만 끝이 나지 않기 때문에 cat읽기에서 사용 /dev/urandom하는 것은 나쁜 생각 /dev/urandom입니다.

사용할 수 있습니다 head. 그러나 행은 임의의 줄 바꿈 바이트로 무작위로 분리되므로 행이 아닌 바이트 단위로 읽도록주의하십시오.

따라서 임의의 바이트 30 개를 파일로 읽으 random.bytes려면 다음을 사용하십시오.

head -c 30 /dev/urandom > random.bytes

일반 사용자로 읽을 수 있습니다.

/ dev / random을 그대로 두십시오

일반적으로을 사용 /dev/urandom하지 않고을 사용하려고합니다 /dev/random.

문제는 /dev/random올바른 방법으로 사용하기가 어렵고 잘못된 방법으로 사용하기 쉽다는 것입니다. 그것을 잘못 사용하면 처음에는 작동하지만 나중에 이상한-심지어 임의의 성능 문제가 발생합니다. 때때로.

를 사용할 때 까다로운 부분을 처리하면서 내부 /dev/urandom를 사용 /dev/random합니다.


4

인식 된 숫자로만 읽으려면 할 수 있습니다

od -d /dev/random

0

나는 개인적으로 이것을 토큰 생성에 사용합니다.

dd if=/dev/urandom  count=1 bs=128 | sha512sum
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.