技術ノート Linux Linux で Base64 文字列をエンコードまたはデコードする方法

Linux で Base64 文字列をエンコードまたはデコードする方法

Linux で Base64 文字列をエンコードまたはデコードする方法

Base64 バイナリからテキストへのスキームを使用して文字列をエンコードおよびデコードする方法を学びたいですか?このチュートリアルでは、base64 コマンドと Python プログラミング言語を使用して、Linux 上で文字列をエンコードおよびデコードする 2 つの方法を説明します。

Base64 はどこで使用されますか?

Linux で Base64 文字列をエンコードまたはデコードする方法

Base64 はさまざまなドメインで広く使用されています。最も一般的な分野には、電子メールの添付ファイル、Web 開発、ネットワーキング、URL エンコードなどがあります。

一部の電子メール システムでは、画像やドキュメントなどのバイナリ データをメッセージとともに安全に送信できるように、base64 を使用してテキスト形式にエンコードします。 Web 開発者は、base64 を使用して HTML および CSS に画像を埋め込み、HTTP リクエストの数を減らし、ページの読み込み速度を向上させることもできます。

Base64 エンコードのもう 1 つの一般的な用途は、認証トークンです。ユーザー名とパスワードは、このエンコード スキームを使用してマスクされ、HTTP ヘッダーまたは URL パラメーターに追加される場合があります。ネットワーキングでは、base64 は、データを破損することなく送信するために、HTTP や SMTP などのテキストベースの通信を使用するプロトコルで使用されます。

知っておくべきことは、base64 は単なるエンコード スキームであるということです。エンコードされたデータは簡単にデコードして元のデータに戻すことができます。 データを暗号化する 必要がある場合は、決して使用しないでください。

Linux で Base64 文字列をエンコードまたはデコードする方法

Base64 コマンドを使用した文字列のエンコード

Base64 を使用して文字列をエンコードする最も基本的な方法は 、echo コマンド を使用して文字列を端末に出力することです。コツは、次のように echo コマンドの 出力を Base64 にパイプする ことです。

 echo '私は Linux が大好きです' | Base64

echo コマンドのデフォルトの動作により、文字列の末尾に改行文字が追加されます。これを省略して文字列のみを使用したい場合は、次を実行します。

 echo -n '私は Linux が大好きです' | Base64

ご覧のとおり、出力は前の出力とは異なります。これは、文字列に改行文字を自動的に追加しない printf コマンドを使用して行うこともできます。形式は以下のとおりです。

 printf '私は Linux が大好きです' | Base64

今回は改行文字がないため、この出力は前の出力と同じです。 Linux の here-strings に精通している場合は、次のように、here-strings を使用して文字列出力を Base64 コマンドに送信することもできます。

 Base64 <<< 「私は Linux が大好きです」

echo コマンドと同様に、here-strings も文字列の末尾に改行文字を追加します。

Linux で Base64 文字列をエンコードまたはデコードする方法

Base64 コマンドを使用したファイルのエンコード

Base64 を使用してファイルをエンコードするには、オプションとしてファイルを Base64 コマンドに直接渡すことができます。

テストするには、 新しいファイルを作成し それにテキストを追加します 。すでにテキスト ファイルがある場合は、それを使用します。 Base.txt というファイルを作成しました。ファイルのコンテンツを Base64 にエンコードするには、次を実行します。

 Base64のbase.txt

忘れずに、base.txt を実際のファイル名に置き換えてください。上記のコマンドは、ターミナルに出力のみを表示します。エンコードされた文字列はどこにも保存されません。ただし、出力を新しいファイルにリダイレクトすることで簡単に実行できます。 Output.txt という名前の別のファイルを作成しました。今回は、出力をその空のファイルに保存します。そのためのコマンドは次のとおりです。

 Base64 のベース.txt > 出力.txt

ご覧のとおり、ターミナルには出力が表示されませんでした。このコマンドにより、代わりに別のファイルに保存されました。

Linux で Base64 文字列をエンコードまたはデコードする方法

Base64 コマンドを使用した Base64 文字列のデコード

Base64 文字列をデコードして通常の文字列に変換するには、base64 コマンドで「-d」フラグを使用する必要があります。 echo コマンドを使用したデモを見てみましょう。

エコー 'SG93VG9HZWVrCg==' | Base64 -d

base64 文字列のデコードに here-strings を使用したい場合は、次を使用します。

 base64 -d <<< SG93VG9HZWVrCg==

場合によっては、文字列に英数字以外の文字が含まれることがあります。 「-i」オプションを使用すると、文字列をデコードするときにこれらを無視できます。

Linux で Base64 文字列をエンコードまたはデコードする方法

Python を使用した Base64 文字列のエンコードとデコード

あなたが Python プログラマーであるか、Bash よりも Python プログラミング言語 に精通している場合は、この方法が適しています。 Python には、文字列のエンコードとデコードに使用できる Base64 モジュールがあります。 python3 ターミナル コマンドを使用することも、完全なプログラムを作成することもできます。両方の方法を紹介します。

python3 コマンドには、「-m」またはモジュール フラグが付いています。このフラグを使用して、base64 モジュールを呼び出すことができます。その後、echo コマンドまたは here-strings を使用して文字列を渡すことができます。完全なコマンドは次のとおりです。

 echo '私は Linux が大好きです' | python3 -mbase64 # echo コマンドを使用しますpython3 -mbase64 <<< 'I love Linux' # here-strings を使用します

Base64 文字列をデコードするには、base64 コマンドで前述したように、「-d」フラグを使用するだけです。構文は以下のとおりです。

エコー 'SSBsb3ZlIExpbnV4Cg==' | python3 -mbase64 -d # エコーコマンドの使用 python3 -mbase64 -d <<< 'SSBsb3ZlIExpbnV4Cg==' # here-strings の使用

もちろん、ユーザー入力を受け取ってエンコードとデコードを処理できる Python プログラムを作成するのが便利な方法です。まず、文字列をエンコードするプログラムを作成しましょう。エンコードコードは次のとおりです。

 import base64
# Get input string from the user
input_string = input( "Enter the string to encode: " )
# Encode the string using base64
encoded_string = base64.b64encode(input_string.encode( 'utf-8' ))
# Decode the encoded string to ensure it's correct (optional)
decoded_string = base64.b64decode(encoded_string).decode( 'utf-8' )
# Print the encoded and decoded strings
print ( "Encoded string:" , encoded_string.decode( 'utf-8' ))
print ( "Decoded string (verification):" , decoded_string)

適切な名前と「.py」拡張子を付けてファイルを保存します。ここではbase64_encoder.pyという名前で保存しています。完了したら、次のようにプログラムを実行します。

 python3base64_encoder.py

Base64 文字列をデコードするプログラムを作成することもできます。使用できるコード スニペットは次のとおりです。

 import base64
# Get input base64 string from the user
encoded_string = input( "Enter the Base64 string to decode: " )
try :
# Decode the string using base64.b64decode()
decoded_string = base64.b64decode(encoded_string).decode( 'utf-8' )
print ( "Decoded string:" , decoded_string)
except Exception as e:
print( f"Error decoding string: {e} " )

ファイルを保存し、同じ方法でプログラムを実行します。

 python3base64_decoder.py

これらの Python プログラムを使用して、任意の文字列をエンコードおよびデコードできるようになりました。


これらは、base64 を使用して文字列をエンコードおよびデコードする最も簡単な 2 つの方法です。 Linux の Base64 コマンドについて詳しく知りたい場合は、 マニュアル ページ を参照してください。

「 Linux で Base64 文字列をエンコードまたはデコードする方法」に関するベスト動画選定!

Base64 Encode and Decode
【Linuxコマンドの基本01】 ファイルを管理する Bash上でファイル、ディレクトリを作る、消す、そして、ファイルとはなにか、ディレクトリとは? 初心者にわかりやすく解説。