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ị)

2) Convert Base64 về ảnh gốc (nguy hiểm)

Nhân tiện, bạn có thể cải thiện phương pháp đầu tiên bằng cách kết hợp nó với phương pháp thứ hai. Ví dụ: điều này sẽ xóa dữ liệu không cần thiết và sẽ lưu hình ảnh trong MIME gốc

Làm cách nào để sử dụng Base64 trong PHP?

PHP. Hàm base64_encode() . Thông số. Hàm này chấp nhận tham số duy nhất $data là bắt buộc. Nó được sử dụng để chỉ định mã hóa chuỗi. Giá trị trả về. Hàm này trả về chuỗi được mã hóa trong base64 nếu thành công hoặc trả về Sai trong trường hợp thất bại.

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

Hàm utf8_decode() là một hàm sẵn có trong PHP được sử dụng để giải mã chuỗi UTF-8 thành ISO-8859- . Hàm này giải mã trở lại chuỗi đã mã hóa được mã hóa bằng hàm utf8_encode(). Tham số. Hàm này chấp nhận tham số duy nhất $string được yêu cầu.

Làm cách nào để giải mã Base64?

Để giải mã một tệp có nội dung được mã hóa base64, bạn chỉ cần cung cấp đường dẫn của tệp bằng cờ --decode . Đối với các tệp mã hóa, đầu ra sẽ là một chuỗi rất dài của tệp gốc. Bạn có thể muốn xuất thiết bị xuất chuẩn trực tiếp vào một tệp.

Làm cách nào để chuyển đổi chuỗi Base64 thành tệp trong PHP?

Sử dụng đoạn mã sau để chuyển đổi nó thành tệp hình ảnh. hàm base64_to_jpeg( $base64_string, $output_file ) { $ifp = fopen( $output_file, "wb" ); . jpg' );