Python: Base64 – teksti ja piltide kodeerimine, dekodeerimine

1. Mis on Base64? Pythoni põhiline kasutusviis

Mis on Base64? Base64 on meetod binaarse andmete kodeerimiseks tekstivormingusse. Eriti kasutatakse seda e-posti, URL-ide ja veebisuhtluse puhul, et binaarseid andmeid turvaliselt edastada. See tehnika võimaldab kodeerida pilte ja faile ning vahetada neid turvaliselt tekstipõhiselt. Pythonis Base64 kasutamise eelised Pythoni abil saab base64 standardraamatukogu kasutades ilma täiendava installita lihtsalt teha Base64 kodeerimist ja dekodeerimist. Allolevas koodis näidatakse, kuidas stringi kodeerida Base64 vormingus ja seejärel dekodeerida tagasi algsesse.
import base64

# Kodeeritav andmed
data = "こんにちは"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data)  # b'44GT44KT44Gr44Gh44Gv'

# Dekodeerimine ja andmete taastamine
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data)  # Tere
  • b64encode() funktsioon kodeerib baitijärje Base64 vormingusse. encode('utf-8') kasutatakse stringi baitijärjeks muutmiseks.
  • b64decode() funktsioon dekodeerib kodeeritud andmed tagasi algsesse stringi.

2. Pythoniga Base64 kodeerimise juhised

Stringi kodeerimine Base64 kodeerimine toimub pärast teksti või andmete teisendamist baitijadaks. Järgnevas koodis näidatakse, kuidas Pythonis stringi kodeerida.
import base64

# Stringi kodeerimine
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text)  # b'UHl0aG9uIEJhc2U2NA=='
Selgitus: encode('utf-8') muundatakse string baitijadaks ja b64encode() teeb Base64 kodeerimise. Kodeeritud andmed kuvatakse baitijadana.
侍エンジニア塾

3. Base64 dekoodimise mehhanism ja näide

Kooditud andmete taastamise meetod Järgnevalt on näide, kuidas Base64‑kooditud andmeid dekodeerida ja taastada algne string.
import base64

# Base64‑kooditud andmed
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# Dekodeerimine ja algse stringi taastamine
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data)  # Python is great
Punktid: Dekodeeritud andmed tagastatakse baitide jadana, seega kasutatakse decode('utf-8'), et muuta need stringiks. Sellega saab kooditud stringi taastada algsesse vormi.
</

4. Kuidas Pythoniga pildifaili Base64-krüpteerida ja dekodeerida

Pildifaili teisendamine Base64-vormingusse Base64 suudab kodeerida ka binaarandmeid, näiteks pildifaile. Järgnevas näites tutvustame, kuidas pildifaili Base64-krüpteerida ja salvestada tekstivormingus.
import base64

# Loeb pildifaili ja kodeerib selle Base64-vormingusse
with open('image.png', 'rb') as img_file:
    encoded_image = base64.b64encode(img_file.read())
    print(encoded_image)
Kuidas pildifaili taastada Allpool on kood, mis dekodeerib kodeeritud pildifaili ja taastab selle pildiformaadi.
import base64

# Kodeeritud pildidata
encoded_image = b'...'  # Kodeeritud andmed

# Dekodeerib ja salvestab pildifailina
with open('decoded_image.png', 'wb') as img_file:
    img_file.write(base64.b64decode(encoded_image))
Selgitus: b64encode() abil pildi kodeerimine ja b64decode() abil dekodeerimine võimaldab andmeid tagasi binaarvormingusse tuua.

5. Base64 praktilised kasutusnäited

Webirakenduste kasutusnäide Base64 on väga kasulik andmete vahetamisel veebirakendustes ja API-des. Näiteks on siin API näide, mis teisendab pildi Base64 formaati ja tagastab selle JSON-vastusena.
from flask import Flask, jsonify
import base64

app = Flask(__name__)

@app.route('/image')
def get_image():
    with open('image.png', 'rb') as image_file:
        encoded_image = base64.b64encode(image_file.read()).decode('utf-8')
    return jsonify({'image': encoded_image})

if __name__ == '__main__':
    app.run(debug=True)
See API on lihtne näide, mis kodeerib pildi Base64-iks ja tagastab selle JSON-ina. Veebirakendustes on see kasulik piltide salvestamiseks andmebaasis või pildidata vahetamiseks API suhtluse käigus.

6. Base64 kodeerimise tähelepanekud ja piirangud

Andmesuuruse suurenemine Base64 kodeerimisel on puuduseks, et andmesuurus suureneb umbes 33%. See tuleneb sellest, et Base64 teisendab 3 baiti andmeid 4 baiti tekstiks. Näiteks, kui 1 MB pilt kodeeritakse Base64-iga, muutub see 1,33 MB-ks. Andmesuuruse suurenemise konkreetne näide Kui kodeerida 100 KB fail, muutub see umbes 133 KB-ks. Kui suuri faile sageli vahetada, mõjutab see nii ülekandekiirust kui ka salvestusruumi, seega on oluline kombineerida optimeerimis- ja tihendusmeetodeid.

Kokkuvõte

Selles artiklis selgitasime, kuidas Pythonis Base64 kodeerida ja dekodeerida, praktilisi kasutusnäiteid ning Base64 kodeerimise eeliseid ja puudusi. Base64 on andmete edastamisel ja salvestamisel väga kasulik tehnoloogia, mida kasutatakse laialdaselt eriti veebirakendustes ja API-des. Kuid on oluline arvestada piiranguga, et andmemahud suurenevad, ning kasutada seda sobivates olukordades. Kasutage seda tehnoloogiat kindlasti oma tulevaste projektide käigus.