GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo codificar en base64 /dev/random o /dev/urandom?

Entonces, ¿qué tiene de malo

cat /dev/urandom | uuencode -

?

Se corrigió después de que el primer intento no funcionó... ::suspiro::

Por cierto, muchas utilidades de Unix usan '-' en lugar de un nombre de archivo para indicar "usar la entrada estándar".


Varias personas han sugerido cat conexiones y tuberías a través de base64 o uuencode . Un problema con esto es que no puedes controlar cuántos datos leer (continuará para siempre, o hasta que presiones ctrl+c). Otra posibilidad es usar el dd comando, que le permitirá especificar cuántos datos leer antes de salir. Por ejemplo, para leer 1kb:

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

Otra opción es canalizar al strings comando que puede dar más variedad en su salida (los caracteres no imprimibles se descartan, se muestran las ejecuciones de al menos 4 caracteres imprimibles [por defecto]). El problema con strings es que muestra cada "ejecución" en su propia línea.

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

(por supuesto, puede reemplazar todo el comando con

strings /dev/urandom

si no quieres que se detenga nunca).

Si quieres algo realmente original, prueba uno de:

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

¿Qué tal algo como

cat /dev/urandom | base64

Lo que da (muchas) cosas como

hX6VYoTG6n+suzKhPl35rI+Bsef8FwVKDYlzEJ2i5HLKa38SLLrE9bW9jViSR1PJGsDmNOEgWu+6
HdYm9SsRDcvDlZAdMXAiHBmq6BZXnj0w87YbdMnB0e2fyUY6ZkiHw+A0oNWCnJLME9/6vJUGsnPL
TEw4YI0fX5ZUvItt0skSSmI5EhaZn09gWEBKRjXVoGCOWVlXbOURkOcbemhsF1pGsRE2WKiOSvsr
Xj/5swkAA5csea1TW5mQ1qe7GBls6QBYapkxEMmJxXvatxFWjHVT3lKV0YVR3SI2CxOBePUgWxiL
ZkQccl+PGBWmkD7vW62bu1Lkp8edf7R/E653pi+e4WjLkN2wKl1uBbRroFsT71NzNBalvR/ZkFaa
2I04koI49ijYuqNojN5PoutNAVijyJDA9xMn1Z5UTdUB7LNerWiU64fUl+cgCC1g+nU2IOH7MEbv
gT0Mr5V+XAeLJUJSkFmxqg75U+mnUkpFF2dJiWivjvnuFO+khdjbVYNMD11n4fCQvN9AywzH23uo
03iOY1uv27ENeBfieFxiRwFfEkPDgTyIL3W6zgL0MEvxetk5kc0EJTlhvin7PwD/BtosN2dlfPvw
cjTKbdf43fru+WnFknH4cQq1LzN/foZqp+4FmoLjCvda21+Ckediz5mOhl0Gzuof8AuDFvReF5OU

O, sin el (inútil) cat+pipe :

base64 /dev/urandom

(Mismo tipo de salida ^^ )


EDITAR: también puedes usar el --wrap opción de base64 , para evitar tener "líneas cortas":

base64 --wrap=0 /dev/urandom

Esto eliminará el envoltorio y obtendrá una visualización de "pantalla completa" ^^


Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. Linux:¿Qué significa la letra 'u' en /dev/urandom?

  3. Cómo mapear dispositivos /dev/sdX y /dev/mapper/mpathY desde el dispositivo /dev/dm-Z

  4. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  5. Cómo usa Linux /dev/tty y /dev/tty0

tty (/dev/tty) vs pts (/dev/pts) en Linux

Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

kernel:deshabilitar /dev/kmem y /dev/mem

¿Está mal vincular /dev/random a /dev/urandom en Linux?

¿Por qué se requieren < o > para usar /dev/tcp?

Diferencias entre /dev/sda y /dev/sda1