Estou usando o Xubuntu 20.04. Mas no terminal não aparece mais a opção para “Encodar” algum arquivo pelo comando base64
(vide base64 --help
).
Se não meengano na LTS passada ainda existia o comendo -e
ou --encode
para isso. Mas não vejo nessa versão.
Sabem de algum comando para que possa encodar pelo terminal algum arquivo?
1 curtida
O base64 não é usado para esconder o conteúdo de um aquivo.
Para isso existe criptografia este sim esconde conteúdo de arquivo para que as outras pessoas não possam obter o conteúdo.
Use o ccrypt para instalar:
$ sudo apt-get install ccrypt
Para usar:
Usage: ccrypt [mode] [options] [file…]
Eu não sei porque seu base64 não esta funcionando.
O próprio base64
, ele foi projetado para trabalhar com stream ou seja, pegando a saída de outro comando. Sendo assim você precisa de um comando auxiliar como por exemplo o echo
:
echo -n "Seu texto" | base64
O -n
é necessário por que o echo
por padrão adiciona uma quebra de linha \n
ao final do texto passado
Pelo que eu entendi ele quer apenas codificar um arquivo, isso é útil por exemplo caso o que ele vai usar aceite apenas caracteres ANSI
Se ele for enviar um arquivo binário por mensagem de celular né.
Eu acredito que ele quer esconder o conteúdo de um arquivo se ele fosse enviar para alguém um e-mail com anexo seria bem melhor.
O que gostaria é mesmo, tipo: pegar uma imagem PNG e transforma-la em base64 para usar dentro de um arquivo HTML por exemplo.
cat image.png | base64
ou (sem o UUOC)
base64 <image.png
Em seguida, use o protocolo data como SRC da imagem:
<img src="data:image/png;base64,ABCDEF..." />
1 curtida
Nesse caso use:
echo "data:image/png;base64,"$(cat "arquivo.png" | base64)
Explicação:
-
"data:image/png;base64,"
é diz o que está sendo incluido, no caso uma imagem (image) no formato PNG (/png), codificada como base64 (;base64,)
-
$(...)
diz pro shell, execute o comando entre os parêntesis e retorne a saída (stdout) dele
-
cat "arquivo.png"
significa pegue o conteúdo do arquivo (cat vem de catch, que significa pegar), “arquivo.png”
-
|
significa redirecione a saída do comando a esquerda (o cat…) e passe como entrada padrão (stdin) do comando a direita (base64)
-
base64
faz a codificação para base64
Esse comando retorna a saída pro terminal então pode ser meio inútil pra vc, pra ter algo mais útil vc pode redirecionar a saída para um arquivo:
echo "data:image/png;base64,"$(cat "imagem.png" | base64) > "imagem.png.base64"
No HTML basta você colocar o conteúdo do arquivo “imagem.png.base64”. Por exemplo:
<img src="[conteúdo do arquivo imagem.png.base64]"/>
1 curtida
Embutir num HTML, num banco de dados, num arquivo rc… tem infinitas possibilidades pra isso
1 curtida