How to base64 encode /dev/random or /dev/urandom? How to base64 encode /dev/random or /dev/urandom? linux linux

How to base64 encode /dev/random or /dev/urandom?


What about something like

cat /dev/urandom | base64

Which gives (lots of) stuff like

hX6VYoTG6n+suzKhPl35rI+Bsef8FwVKDYlzEJ2i5HLKa38SLLrE9bW9jViSR1PJGsDmNOEgWu+6HdYm9SsRDcvDlZAdMXAiHBmq6BZXnj0w87YbdMnB0e2fyUY6ZkiHw+A0oNWCnJLME9/6vJUGsnPLTEw4YI0fX5ZUvItt0skSSmI5EhaZn09gWEBKRjXVoGCOWVlXbOURkOcbemhsF1pGsRE2WKiOSvsrXj/5swkAA5csea1TW5mQ1qe7GBls6QBYapkxEMmJxXvatxFWjHVT3lKV0YVR3SI2CxOBePUgWxiLZkQccl+PGBWmkD7vW62bu1Lkp8edf7R/E653pi+e4WjLkN2wKl1uBbRroFsT71NzNBalvR/ZkFaa2I04koI49ijYuqNojN5PoutNAVijyJDA9xMn1Z5UTdUB7LNerWiU64fUl+cgCC1g+nU2IOH7MEbvgT0Mr5V+XAeLJUJSkFmxqg75U+mnUkpFF2dJiWivjvnuFO+khdjbVYNMD11n4fCQvN9AywzH23uo03iOY1uv27ENeBfieFxiRwFfEkPDgTyIL3W6zgL0MEvxetk5kc0EJTlhvin7PwD/BtosN2dlfPvwcjTKbdf43fru+WnFknH4cQq1LzN/foZqp+4FmoLjCvda21+Ckediz5mOhl0Gzuof8AuDFvReF5OU

Or, without the (useless) cat+pipe :

base64 /dev/urandom

(Same kind of output ^^ )


EDIT : you can also user the --wrap option of base64, to avoid having "short lines" :

base64 --wrap=0 /dev/urandom

This will remove wrapping, and you'll get "full-screen" display ^^


A number of folks have suggested catting and piping through base64 or uuencode. One issue with this is that you can't control how much data to read (it will continue forever, or until you hit ctrl+c). Another possibility is to use the dd command, which will let you specify how much data to read before exiting. For example, to read 1kb:

dd if=/dev/urandom bs=1k count=1 2>/dev/null | base64

Another option is to pipe to the strings command which may give more variety in its output (non-printable characters are discarded, any runs of least 4 printable characters [by default] are displayed). The problem with strings is that it displays each "run" on its own line.

dd if=/dev/urandom bs=1k count=1 2>/dev/null | strings

(of course you can replace the entire command with

strings /dev/urandom

if you don't want it to ever stop).

If you want something really funky, try one of:

cat -v /dev/urandomdd if=/dev/urandom bs=1k count=1 2>/dev/null | cat -v


So, what is wrong with

cat /dev/urandom | uuencode -

?

Fixed after the first attempt didn't actually work... ::sigh::

BTW-- Many unix utilities use '-' in place of a filename to mean "use the standard input".