GNU/Linux >> Belajar Linux >  >> Linux

Cara menyandikan gambar base64 di linux bash / shell

Jika Anda memerlukan masukan dari terminal, coba ini

lc=`echo -n "xxx_${yyy}_iOS" |  base64`

-n opsi tidak akan memasukkan karakter "\n" ke perintah base64.


Ada perintah Linux untuk itu:base64

base64 DSC_0251.JPG >DSC_0251.b64

Untuk menetapkan hasil ke penggunaan variabel

test=`base64 DSC_0251.JPG`

Enkode

Di Linux

Hasil baris tunggal:

base64 -w 0 DSC_0251.JPG

Untuk HTML :

echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"

Sebagai berkas:

base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64

Dalam variabel:

IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"

Dalam variabel untuk HTML :

IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"

Di OSX

Di OSX , base64 biner berbeda, dan parameternya berbeda. Jika Anda ingin menggunakannya di OSX , Anda harus menghapus -w 0 .

Hasil baris tunggal:

base64 DSC_0251.JPG

Untuk HTML :

echo "data:image/jpeg;base64,$(base64 DSC_0251.JPG)"

Sebagai berkas:

base64 DSC_0251.JPG > DSC_0251.JPG.base64

Dalam variabel:

IMAGE_BASE64="$(base64 DSC_0251.JPG)"

Dalam variabel untuk HTML :

IMAGE_BASE64="data:image/jpeg;base64,$(base64 DSC_0251.JPG)"

OSX/Linux umum

Sebagai Fungsi 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

Sebagai Skrip Shell

Buat base64.sh file dengan konten berikut:

#!/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

Jadikan itu dapat dieksekusi:

chmod a+x base64.sh

Penggunaan:

./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh

Dekode

Dapatkan kembali data yang dapat Anda baca:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

Anda perlu menggunakan cat untuk mendapatkan konten dari file bernama 'DSC_0251.JPG', bukan nama file itu sendiri.

test="$(cat DSC_0251.JPG | base64)"

Namun, base64 dapat membaca dari file itu sendiri:

test=$( base64 DSC_0251.JPG )

Linux
  1. Cara Menggunakan Kata Sandi Terenkripsi di Linux Bash Shell Script

  2. Cara Menghapus Riwayat Bash di Linux

  3. Bagaimana Cara Mempersingkat Bash Prompt di Linux?

  1. Cara Melihat Metadata Gambar Di Linux

  2. Bagaimana Cara Mengubah Cron Shell (sh ke Bash)?

  3. Bagaimana caranya:Riwayat Bash/Shell yang tidak terbatas?

  1. Bagaimana Membandingkan String di Bash Shell Scripting

  2. Cara Mengganti Shell di Linux

  3. Cara Mengonfigurasi Bash Shell Terbatas di Linux