目次
1. Base64 คืออะไร? วิธีใช้งานพื้นฐานใน Python
Base64 คืออะไร? Base64 เป็นวิธีการเข้ารหัสข้อมูลไบนารีให้เป็นรูปแบบข้อความ โดยเฉพาะใช้ในอีเมล, URL และการสื่อสารบนเว็บ เพื่อส่งข้อมูลไบนารีอย่างปลอดภัย เทคโนโลยีนี้ทำให้สามารถเข้ารหัสรูปภาพหรือไฟล์ และแลกเปลี่ยนกันได้อย่างปลอดภัยในรูปแบบที่เป็นข้อความ ข้อดีของการใช้ Base64 ใน Python ใน Python สามารถใช้ไลบรารีมาตรฐานชื่อbase64
เพื่อเข้ารหัสและถอดรหัส Base64 ได้อย่างง่ายดายโดยไม่ต้องติดตั้งเพิ่มเติม โค้ดด้านล่างแสดงวิธีเข้ารหัสสตริงเป็นรูปแบบ Base64 แล้วถอดรหัสให้กลับเป็นค่าเดิมimport base64
# ข้อมูลที่จะเข้ารหัส
data = "สวัสดี"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data) # b'44GT44KT44Gr44Gh44Gv'
# ถอดรหัสและแปลงกลับเป็นข้อมูลเดิม
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # สวัสดี
- ฟังก์ชัน
b64encode()
จะเข้ารหัสข้อมูลแบบไบต์ให้อยู่ในรูปแบบ Base64 ส่วนencode('utf-8')
ใช้สำหรับแปลงสตริงให้เป็นข้อมูลแบบไบต์ - ฟังก์ชัน
b64decode()
จะถอดรหัสข้อมูลที่ถูกเข้ารหัสและแปลงกลับเป็นสตริงเดิม
2. ขั้นตอนการเข้ารหัส Base64 ด้วย Python
การเข้ารหัสสตริง การเข้ารหัส Base64 จะทำหลังจากแปลงข้อความหรือข้อมูลให้เป็นลำดับไบต์ก่อน โค้ดต่อไปนี้จะแสดงขั้นตอนการเข้ารหัสสตริงด้วย Pythonimport base64
# เข้ารหัสสตริง
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text) # b'UHl0aG9uIEJhc2U2NA=='
คำอธิบาย: encode('utf-8')
ใช้เพื่อแปลงสตริงให้เป็นลำดับไบต์ และ b64encode()
ใช้สำหรับเข้ารหัสแบบ Base64 ข้อมูลที่เข้ารหัสแล้วจะแสดงเป็นลำดับไบต์3. กลไกการถอดรหัส Base64 และตัวอย่างจริง
วิธีแปลงข้อมูลที่เข้ารหัสกลับเป็นต้นฉบับ ต่อไปนี้เป็นตัวอย่างการถอดรหัสข้อมูลที่เข้ารหัสแบบ Base64 ให้กลับเป็นสตริงเดิมimport base64
# ข้อมูลที่ถูกเข้ารหัสแบบ Base64
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# ถอดรหัสและแปลงกลับเป็นสตริงเดิม
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # Python is great
จุดสำคัญ:
ข้อมูลที่ถอดรหัสจะถูกส่งคืนเป็นไบต์ จึงใช้ decode('utf-8')
เพื่อแปลงกลับเป็นสตริง ซึ่งช่วยให้สามารถกู้คืนข้อความที่เข้ารหัสให้กลับสู่รูปแบบเดิมได้。
4. วิธีเข้ารหัสและถอดรหัสไฟล์รูปภาพเป็น Base64 ด้วย Python
แปลงไฟล์รูปภาพเป็นรูปแบบ Base64 Base64 สามารถเข้ารหัสข้อมูลไบนารี เช่น ไฟล์รูปภาพ ได้เช่นกัน ตัวอย่างต่อไปนี้จะแสดงวิธีเข้ารหัสไฟล์รูปภาพเป็น Base64 และบันทึกในรูปแบบข้อความimport base64
# อ่านไฟล์รูปภาพและเข้ารหัสเป็นรูปแบบ Base64
with open('image.png', 'rb') as img_file:
encoded_image = base64.b64encode(img_file.read())
print(encoded_image)
วิธีแปลงไฟล์รูปภาพกลับสู่รูปแบบเดิม ด้านล่างนี้เป็นโค้ดสำหรับถอดรหัสไฟล์รูปภาพที่ถูกเข้ารหัส แล้วแปลงกลับเป็นไฟล์รูปภาพอีกครั้งimport base64
# ข้อมูลรูปภาพที่ถูกเข้ารหัส
encoded_image = b'...' # ข้อมูลที่ถูกเข้ารหัส
# ถอดรหัสและบันทึกเป็นไฟล์รูปภาพ
with open('decoded_image.png', 'wb') as img_file:
img_file.write(base64.b64decode(encoded_image))
คำอธิบาย: b64encode()
เพื่อเข้ารหัสรูปภาพ และ b64decode()
เพื่อถอดรหัส ก็สามารถแปลงกลับเป็นข้อมูลแบบไบนารีได้。5. ตัวอย่างการประยุกต์ใช้ Base64 ในทางปฏิบัติ
ตัวอย่างการใช้งานในเว็บแอปพลิเคชัน Base64 มีประโยชน์อย่างมากเมื่อมีการแลกเปลี่ยนข้อมูลในเว็บแอปพลิเคชันและ API ตัวอย่างเช่น นี่คือ API ที่แปลงรูปภาพเป็นรูปแบบ Base64 แล้วส่งคืนเป็นการตอบกลับแบบ JSON。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)
API นี้เป็นตัวอย่างง่ายๆ ที่เข้ารหัสรูปภาพด้วย Base64 และส่งคืนเป็น JSON ในเว็บแอปพลิเคชัน สิ่งนี้มีประโยชน์เมื่อบันทึกรูปภาพลงในฐานข้อมูล หรือแลกเปลี่ยนข้อมูลรูปภาพผ่านการสื่อสารของ API.