Je voudrais écrire un script bash pour décoder une chaîne base64. Par exemple, je tape decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
et il imprime Aladdin:open sesame
et retourne à l'invite.
Jusqu'à présent, j'ai essayé un fichier bash simple contenant, python -m base64 -d $1
mais cette commande attend un nom de fichier et non une chaîne. Existe-t-il une autre commande non interactive (pas nécessairement dans un module Python) que je peux exécuter à partir de la ligne de commande pour cela, sans avoir à installer de paquet supplémentaire? (Ou si je le fais, quelque chose de super-minimal.)
command-line
bash
david.libremone
la source
la source
base64 -d <<< QWxhZGRpbjpvcGVuIHNlc2FtZQ==
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | "C:\Program Files\Git\usr\bin\base64" --decode 2> nul > example.txt
Sur Windows avec la base64 de git.Just use
, car de nombreuses personnes connaissent lebase64
programme - mais comme on ne peut pas simplement insérer une chaîne comme option de ligne de commande, il est difficile d’obtenir la syntaxe correcte pour les utilisateurs qui ne touchent la CLI que de temps en temps.pbpaste | base64 --decode
.openssl peut aussi encoder et décoder base64
EDIT: Un exemple où la chaîne encodée en base64 se termine sur plusieurs lignes:
la source
coreutils
un paquet « supplémentaire » contenant des programmes tels quels
,mkdir
,cp
,mv
etchmod
. Je doute que vous puissiez faire quelque chose d’utile avec votre machine sans cela.openssl
présente l'avantagebase64
de fonctionner sous Git Bash sous Windows par rapport à la version standard , à tout le moins l'ancienne version 1.8.1 Git Bash que j'ai installée.Voici!
Ajoutez ce qui suit au bas de votre
~/.bashrc
fichier:Maintenant, ouvrez un nouveau terminal et exécutez la commande.
Cela fera exactement ce que vous avez demandé dans votre question.
la source
Avec vos dépendances d'origine, il est possible de le faire avec une modification mineure de votre script d'origine:
Si vous ne transmettez pas un nom de fichier, ce module python lit à partir de l'entrée standard. Vous pouvez utiliser le premier paramètre pour y accéder
echo $1 |
.la source
J'ai commenté la ligne de commande base64 dans http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utilities . Je lance donc un avertissement lors de l’utilisation du décodage openssl en base64:
La longueur de la ligne d' avertissement base64 est limitée à 64 caractères par défaut dans openssl :
=> RIEN!
pour pouvoir décoder une ligne base64 sans saut de ligne de plus de 64 caractères, utilisez l'option -A:
En tout état de cause, il est préférable de scinder le résultat en base64 en 64 caractères car l’option -A est BUGGY (limite pour les fichiers longs).
la source
En utilisant
perl
Ou la même chose avec
python
la source
Juste pour ajouter une autre façon de le faire:
la source