Làm cách nào để giải mã base64 trong PHP?

base64_decode — Giải mã dữ liệu được mã hóa bằng MIME base64

chuỗi base64_decode [ chuỗi $data [, bool $strict = false ] ];

$data - Dữ liệu được mã hóa
$strict - Trả về FALSE nếu đầu vào chứa ký tự từ bên ngoài bảng chữ cái base64

Trả về dữ liệu gốc hoặc FALSE nếu lỗi. Dữ liệu trả về có thể là nhị phân

github. com/base64decoder/ví dụ/blob/master/base64decode. php

PHP base64_encode

Mã hóa Base64 là sơ đồ mã hóa nhị phân thành văn bản mã hóa dữ liệu nhị phân thành định dạng ASCII có thể in được

Nó được sử dụng để truyền dữ liệu nhị phân một cách an toàn thông qua các hệ thống thông tin được thiết kế để chỉ xử lý dữ liệu văn bản

Bài viết này hướng dẫn bạn cách thực hiện giải mã Base64 trong PHP

Giải mã PHP Base64

Bạn có thể sử dụng hàm base64_decode[] trong PHP để thực hiện giải mã Base64 -

base64_decode [ string $data [, bool $strict = FALSE ] ] : string

Hàm lấy một chuỗi được mã hóa Base64 và một tham số boolean tùy chọn và trả về dữ liệu đã giải mã. Nếu tham số strict được đặt thành TRUE thì hàm sẽ trả về FALSE nếu đầu vào chứa ký tự từ bên ngoài bảng chữ cái Base64. Nếu không, các ký tự không hợp lệ sẽ bị loại bỏ một cách âm thầm

Để chuyển đổi giá trị Base64 thành hình ảnh trong PHP, bạn cần base64_decode và bất kỳ chức năng nào để ghi dữ liệu nhị phân vào tệp. Trước khi giải mã dữ liệu, đảm bảo rằng bạn không cần chuẩn hóa giá trị Base64

Để giải mã chuỗi Base64 và lưu nó dưới dạng hình ảnh, chúng tôi có hai lựa chọn

  1. Cứu ảnh qua thư viện GD nhưng mất bản gốc
  2. Lưu bản gốc nhưng mạo hiểm lưu file “nguy hiểm”

Việc chọn phương pháp nào tùy thuộc vào bạn, nhưng tôi thực sự khuyên bạn nên sử dụng phương pháp đầu tiên nếu bạn không tin tưởng nguồn [ví dụ: nếu người dùng tải hình ảnh lên máy chủ của bạn]. Chỉ sử dụng phương pháp thứ hai nếu bạn chắc chắn rằng các tệp an toàn, nếu không, bạn có nguy cơ gây nguy hiểm cho hệ thống của mình thông qua các lỗ hổng RFI hoặc LFI

Để chứng minh sự khác biệt giữa các phương pháp này, tôi cố tình sử dụng giá trị Base64 sau

________số 8_______

Nếu bạn giải mã Base64 ở trên, bạn sẽ nhận được hình ảnh hợp lệ hiển thị chấm đỏ một pixel. Tuy nhiên, hình ảnh này cũng chứa một backdoor PHP thực thi các lệnh từ xa. Tất nhiên, cửa hậu này chỉ nguy hiểm trên các hệ thống bị cấu hình sai hoặc dễ bị tổn thương, nhưng không nên bỏ qua sự an toàn

1] Chuyển đổi hình ảnh Base64 sang PNG [được khuyến nghị]

Chủ Đề