How to use /dev/(u)random
How can I use /dev/(u)random on Ubuntu or any *nix sistems?
I tried this but it says permission denied.
Note : I also tried as root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random 2 4 Answers
It's a file like device, so you can do things like cat it or copy from it. For instance:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024Creates a file containing 4K of random bytes.
cat /dev/urandom > ~/urandom_test2 Will continue to write random bytes to that file until you hit Ctrl-C. Don't do this on a low performing system...
head -30 /dev/urandom > ~/urandom_test3Will write 30 lines of random bytes
7Get random bytes
If you need a certain number of random bytes, read that number of bytes from /dev/urandom.
It is a "special file" that is made to be like a file to read random numbers from.
Using cat to read from /dev/urandom is a bad idea, because it will try to read /dev/urandom to the end - but it does not end.
You can use head. But take care to read by byte, not by line - because lines would be randomly separated by random newline bytes.
So, to read 30 random bytes into a file random.bytes, use:
head -c 30 /dev/urandom > random.bytesYou can read from it as a normal user.
Leave alone /dev/random
Normally, you want to use /dev/urandom, not /dev/random.
The problem is that /dev/random is hard to use in the right way - and easy to use in a wrong way. Using it wrong works at first, but creates strange - even random - performance problems later. Sometimes.
When you use /dev/urandom, it makes use of /dev/random internally, taking care of the tricky parts.
If you want to just read it with recognized numbers you can do
od -d /dev/random 1 I personally use this for generating tokens:
dd if=/dev/urandom count=1 bs=128 | sha512sum