Si necesita información de termial, intente esto
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
la opción no ingresará el carácter "\n" en el comando base64.
Hay un comando de Linux para eso:base64
base64 DSC_0251.JPG >DSC_0251.b64
Para asignar resultado a uso variable
test=`base64 DSC_0251.JPG`
Codificar
En Linux
Resultado de una sola línea:
base64 -w 0 DSC_0251.JPG
Para HTML
:
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Como archivo:
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
En variable:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
En variable para HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
En OSX
En OSX , el base64
binario es diferente, y los parámetros son diferentes. Si quieres usarlo en OSX , debe eliminar -w 0
.
Resultado de una sola línea:
base64 DSC_0251.JPG
Para HTML
:
echo "data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
Como archivo:
base64 DSC_0251.JPG > DSC_0251.JPG.base64
En variable:
IMAGE_BASE64="$(base64 DSC_0251.JPG)"
En variable para HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
OSX/Linux genérico
Como función de shell
@base64() {
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "[email protected]"
else
cat /dev/stdin | base64 "[email protected]"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "[email protected]"
else
cat /dev/stdin | base64 -w 0 "[email protected]"
fi
fi
}
# Usage
@base64 DSC_0251.JPG
cat DSC_0251.JPG | @base64
Como script de shell
Crear base64.sh
archivo con el siguiente contenido:
#!/usr/bin/env bash
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "[email protected]"
else
cat /dev/stdin | base64 "[email protected]"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "[email protected]"
else
cat /dev/stdin | base64 -w 0 "[email protected]"
fi
fi
Hazlo ejecutable:
chmod a+x base64.sh
Uso:
./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh
Decodificar
Recupere sus datos legibles:
base64 -d DSC_0251.base64 > DSC_0251.JPG
Necesitas usar cat
para obtener los contenidos del archivo llamado 'DSC_0251.JPG', en lugar del nombre del archivo en sí.
test="$(cat DSC_0251.JPG | base64)"
Sin embargo, base64
puede leer desde el propio archivo:
test=$( base64 DSC_0251.JPG )