目次
1. Base64 là gì? Cách sử dụng cơ bản trong Python
Base64 là gì? Base64 là một phương pháp để mã hóa dữ liệu nhị phân thành dạng văn bản. Đặc biệt được dùng trong email, URL và truyền thông web, nhằm truyền dữ liệu nhị phân một cách an toàn. Công nghệ này cho phép mã hóa hình ảnh và tệp, giúp trao đổi an toàn ở dạng văn bản. Ưu điểm khi dùng Base64 trong Python Trong Python, bằng cách sử dụng thư viện chuẩnbase64
, bạn có thể mã hóa và giải mã Base64 một cách dễ dàng mà không cần cài đặt thêm. Mã dưới đây minh họa cách mã hóa một chuỗi sang dạng Base64, rồi giải mã để khôi phục lại như ban đầu.import base64
# Dữ liệu cần mã hóa
data = "Xin chào"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data) # b'44GT44KT44Gr44Gh44Gv'
# Giải mã để trả về dữ liệu ban đầu
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # Xin chào
- Hàm
b64encode()
mã hóa một dãy byte sang dạng Base64.encode('utf-8')
được dùng để chuyển đổi chuỗi thành dãy byte. - Hàm
b64decode()
giải mã dữ liệu đã được mã hóa và trả về chuỗi ban đầu.

2. Các bước thực hiện mã hóa Base64 với Python
Mã hóa chuỗi Mã hóa Base64 được thực hiện sau khi chuyển văn bản hay dữ liệu sang chuỗi byte. Đoạn mã dưới đây cho thấy cách mã hóa một chuỗi trong Python.import base64
# Mã hóa chuỗi
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text) # b'UHl0aG9u IEJhc2U2NA=='
Giải thích: encode('utf-8')
được dùng để chuyển chuỗi thành chuỗi byte, và b64encode()
để mã hóa Base64. Dữ liệu đã mã hóa sẽ được hiển thị dưới dạng chuỗi byte.3. Cơ chế giải mã Base64 và ví dụ minh họa
Cách khôi phục dữ liệu đã được mã hóa về ban đầu Tiếp theo là một ví dụ giải mã dữ liệu đã được mã hóa Base64 để trả về chuỗi ban đầu.import base64
# Dữ liệu đã được mã hóa Base64
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# Giải mã để trả về chuỗi ban đầu
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # Python is great
Điểm mấu chốt:
Dữ liệu sau khi giải mã được trả về dưới dạng dãy byte, vì vậy hãy dùng decode('utf-8')
để chuyển về chuỗi ký tự. Nhờ vậy, bạn có thể khôi phục chuỗi đã mã hóa về định dạng ban đầu.
4. Cách mã hóa và giải mã Base64 cho tệp ảnh trong Python
Chuyển đổi tệp ảnh sang định dạng Base64 Base64 có thể mã hóa cả dữ liệu nhị phân như tệp ảnh. Ví dụ dưới đây giới thiệu cách mã hóa tệp ảnh sang Base64 và lưu dưới dạng văn bản.import base64
# Đọc tệp ảnh và mã hóa sang Base64
with open('image.png', 'rb') as img_file:
encoded_image = base64.b64encode(img_file.read())
print(encoded_image)
Cách khôi phục tệp ảnh về dạng ban đầu Dưới đây là đoạn mã giải mã tệp ảnh đã được mã hóa và chuyển nó trở lại định dạng hình ảnh.import base64
# Dữ liệu ảnh đã được mã hóa
encoded_image = b'...' # Dữ liệu đã mã hóa
# Giải mã và lưu thành tệp ảnh
with open('decoded_image.png', 'wb') as img_file:
img_file.write(base64.b64decode(encoded_image))
Giải thích:
Sử dụng b64encode()
để mã hóa ảnh và b64decode()
để giải mã, bạn có thể khôi phục dữ liệu về dạng nhị phân.5. Các ví dụ ứng dụng thực tế của Base64
Ví dụ sử dụng trong ứng dụng web Base64 rất hữu ích khi trao đổi dữ liệu trong các ứng dụng web và API. Ví dụ: đây là một API chuyển đổi hình ảnh sang định dạng Base64 và trả về dưới dạng phản hồi 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 này là một ví dụ đơn giản về việc mã hóa hình ảnh bằng Base64 và trả về ở dạng JSON. Trong các ứng dụng web, điều này hữu ích khi lưu hình ảnh vào cơ sở dữ liệu hoặc trao đổi dữ liệu hình ảnh qua giao tiếp API.