GNU/Linux >> Tutoriels Linux >  >> Linux

Comment encoder en base64 /dev/random ou /dev/urandom ?

Alors, qu'est-ce qui ne va pas avec

cat /dev/urandom | uuencode -

?

Corrigé après que la première tentative n'ait pas fonctionné... ::sigh::

BTW-- De nombreux utilitaires Unix utilisent '-' à la place d'un nom de fichier pour signifier "utiliser l'entrée standard".


Un certain nombre de personnes ont suggéré cat ting et tuyauterie à travers base64 ou uuencode . Un problème avec cela est que vous ne pouvez pas contrôler la quantité de données à lire (cela continuera pour toujours ou jusqu'à ce que vous appuyiez sur ctrl + c). Une autre possibilité est d'utiliser le dd commande, qui vous permettra de spécifier la quantité de données à lire avant de quitter. Par exemple, pour lire 1ko :

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

Une autre option consiste à diriger vers le strings commande qui peut donner plus de variété dans sa sortie (les caractères non imprimables sont ignorés, toutes les séries d'au moins 4 caractères imprimables [par défaut] sont affichées). Le problème avec strings est qu'il affiche chaque "exécution" sur sa propre ligne.

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

(bien sûr, vous pouvez remplacer la commande entière par

strings /dev/urandom

si vous ne voulez pas qu'il s'arrête).

Si vous voulez quelque chose de vraiment funky, essayez l'un des éléments suivants :

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

Qu'en est-il de quelque chose comme

cat /dev/urandom | base64

Ce qui donne (beaucoup) de trucs comme

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

Ou, sans le (inutile) chat+tuyau :

base64 /dev/urandom

(Même type de sortie ^^ )


MODIF : vous pouvez également utiliser le --wrap possibilité de base64 , pour éviter d'avoir des "lignes courtes" :

base64 --wrap=0 /dev/urandom

Cela supprimera l'habillage et vous obtiendrez un affichage "plein écran" ^^


Linux
  1. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  2. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  3. Quand utiliser /dev/random contre /dev/urandom ?

  4. Comment mapper les périphériques /dev/sdX et /dev/mapper/mpathY à partir du périphérique /dev/dm-Z

  5. Comment échanger /dev/sda avec /dev/sdb ?

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

Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

Linux – Que signifie la lettre « u » dans /dev/urandom ?

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

Différences entre /dev/sda et /dev/sda1