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

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

3 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ố

4 được đặt thành
5 thì hàm sẽ trả về
6 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

Base64 là một thuật ngữ chung cho một số lược đồ mã hóa tương tự mã hóa dữ liệu nhị phân bằng cách xử lý dữ liệu đó bằng số và dịch nó thành biểu diễn cơ sở 64. Thuật ngữ Base64 bắt nguồn từ mã hóa chuyển nội dung MIME cụ thể

Đây là mã hóa cơ sở 64, tôi không thể giải mã nó thành chuỗi thực tế của Trung Quốc. Vì nó đã được mã hóa bằng "iso-2022-jp", tôi cũng đã thử giải mã base64 trực tuyến. org để giải mã chuỗi này, nhưng tôi không thể tìm thấy chuỗi gốc, tôi có thể làm điều đó như thế nào?

Base64 là một loại mã hóa hữu ích cho phép bạn mã hóa một chuỗi trong PHP mà bạn có thể dễ dàng giải mã

PHP sử dụng tiêu chuẩn cho mã hóa của nó. Tiêu chuẩn này ban đầu được thiết kế để giúp gửi dữ liệu nhị phân trong các giao thức dựa trên văn bản như email

Một cái gì đó giống như hình ảnh sẽ được mã hóa ở định dạng này trong quá trình truyền và sau đó được giải mã trở lại dữ liệu ban đầu bởi ứng dụng khách nhận

Có nhiều cách sử dụng khác để mã hóa và giải mã Base64 trong PHP. Ví dụ: trong một hệ thống nhận xét trước đây, chúng tôi đã sử dụng dữ liệu SVG được mã hóa thành Base64, sau đó được trình duyệt web diễn giải trở lại thành dữ liệu gốc của nó

Trong vài phần tiếp theo, chúng tôi sẽ chỉ cho bạn cách bạn có thể mã hóa và giải mã bằng Base64 trong PHP. Cụ thể, chúng ta sẽ chạm vào các hàm PHP

7 và
3

Xin lưu ý rằng Base64 không bao giờ được sử dụng để bảo mật. Nó được thiết kế để được mã hóa và giải mã hiệu quả một cách nhanh chóng và không có biện pháp bảo vệ nào

Hàm base64_encode[] trong PHP

Trong phần này, chúng tôi sẽ chỉ cho bạn cách mã hóa một chuỗi ở định dạng Base64 trong PHP. Để đạt được điều này, bạn sẽ học tất cả về hàm base64_encode[]

Định nghĩa hàm base64_encode[] của PHP

Hãy để chúng tôi chỉ cho bạn cách định nghĩa chính xác hàm base64_encode[] trong PHP. Biết cách nó được xác định sẽ giúp bạn dễ dàng hiểu loại dữ liệu bạn sẽ làm với

Hàm này rất đơn giản vì nó chỉ hiển thị một tham số duy nhất mong đợi một chuỗi

Dưới đây bạn có thể thấy cách

7 được định nghĩa. Định nghĩa này hiển thị các tham số kiểu dữ liệu dự kiến ​​và kiểu trả về của hàm

base64_encode[string $string]: string

Chức năng này chỉ yêu cầu một tham số duy nhất. Tham số đó là chuỗi bạn muốn mã hóa theo chuẩn MIME Base64

PHP sẽ trả về phiên bản được mã hóa Base64 của chuỗi của bạn. Bạn sẽ lưu ý rằng chuỗi này sẽ tiêu thụ nhiều dữ liệu hơn và dài hơn so với dữ liệu ban đầu

Do cách thức hoạt động của Base64, điều này sẽ tiêu thụ nhiều dữ liệu hơn khoảng 33% so với chuỗi ban đầu, vì vậy hãy cẩn thận nếu bạn đang xử lý một chuỗi nguồn lớn

Ví dụ về việc sử dụng base64_encode[]

Bây giờ chúng ta đã biết định nghĩa của hàm base64_encode[] trong PHP, chúng ta có thể khám phá một ví dụ về cách bạn sẽ sử dụng hàm này trong mã của mình

Chúng ta sẽ giữ ví dụ này tương đối đơn giản bằng cách chuyển thẳng một chuỗi vào hàm

Ở phần đầu của ví dụ này, chúng ta sẽ tạo một biến có tên là “

1” và gán cho nó chuỗi “
2“

Sau đó, chúng tôi sử dụng hàm

7 của PHP, chuyển biến “
1” vào tham số duy nhất của nó. Chuỗi Base64 được trả về sẽ được xuất ra nhờ chúng ta sử dụng câu lệnh echo

Bên dưới, bạn có thể thấy cách PHP mã hóa chuỗi “

2” của chúng tôi ở định dạng Base64

Bạn sẽ ngay lập tức nhận thấy rằng chuỗi kết quả dài hơn và kết thúc bằng dấu bằng. Điều này là do tiêu chuẩn MIME-Base64 sử dụng dấu bằng cho phần đệm vì độ dài phải luôn là bội số của ba

cGlteWxpZmV1cC5jb20=

Hàm base64_decode[] trong PHP

Bây giờ bạn đã biết cách mã hóa một chuỗi ở định dạng MIME-Base64 trong PHP, chúng ta hãy khám phá cách giải mã chuỗi

PHP cung cấp một hàm có tên là

3 sẽ lấy một chuỗi được mã hóa và giải mã nó trở lại dữ liệu gốc của nó

Định nghĩa hàm base64_decode[] của PHP

Trước khi tiếp tục, chúng ta hãy khám phá định nghĩa của

3 trong PHP. Định nghĩa này sẽ cho bạn thấy các tham số khác nhau và kiểu trả về của hàm này

Chức năng này sẽ lấy một chuỗi Base64 và chuyển đổi nó trở lại dữ liệu ban đầu

Dưới đây bạn có thể xem định nghĩa của chức năng. Điều này cho thấy hai tham số cùng với kiểu trả về dữ liệu

________số 8

Hàm này có hai đối số mà bạn có thể sử dụng. Cái đầu tiên là bắt buộc và cái thứ hai là tùy chọn

  • 8 – Tham số này là bắt buộc và là nơi bạn sẽ chuyển vào chuỗi mã hóa MIME Base64 của mình.

    Nếu chuỗi của bạn sử dụng một tiêu chuẩn khác, thì bạn có thể gặp sự cố khi sử dụng chức năng này.
  • 9 – Tham số nghiêm ngặt là tùy chọn và được đặt thành “
    cGlteWxpZmV1cC5jb20=
    0” theo mặc định.

    Bằng cách đặt
    9 thành “
    cGlteWxpZmV1cC5jb20=
    2“, PHP sẽ trả về “
    cGlteWxpZmV1cC5jb20=
    0” nếu chuỗi Base64 chứa bất kỳ ký tự nào không có trong bảng chữ cái Base64.

    Khi được đặt thành “
    cGlteWxpZmV1cC5jb20=
    0“, PHP sẽ âm thầm loại bỏ bất kỳ ký tự không hợp lệ nào và cố gắng giải mã chuỗi kết quả.

Hàm

3 của PHP sẽ trả về “
cGlteWxpZmV1cC5jb20=
0” khi lỗi hoặc dữ liệu được giải mã. Dữ liệu được giải mã có thể ở dạng nhị phân, vì vậy hãy sẵn sàng xử lý dữ liệu này trong mã của bạn

Ví dụ về sử dụng base64_decode[] trong PHP

Trong phần này, chúng tôi sẽ hướng dẫn bạn cách sử dụng hàm

3 trong PHP. Chúng tôi sẽ cung cấp hai ví dụ khác nhau dưới đây

Ví dụ đầu tiên sẽ cho thấy cách chức năng được sử dụng mà không có tham số tùy chọn. Ví dụ thứ hai sẽ cho bạn thấy cách hoạt động của tùy chọn nghiêm ngặt

Cách sử dụng cơ bản của hàm base64_decode[]

Ví dụ đầu tiên của chúng ta sẽ khám phá cách sử dụng cơ bản của hàm

3. Vì vậy, với ví dụ này, chúng ta sẽ bỏ qua tham số thứ hai

Để bắt đầu tập lệnh này, chúng tôi sẽ xác định một chuỗi PHP có tên là “

8” và gán cho nó một chuỗi được mã hóa Base64 [_______80]. Chuỗi này giống với chuỗi chúng tôi đã mã hóa trước đó trong hướng dẫn này

Sau đó, chúng tôi chuyển thẳng biến “

8” của mình vào hàm
3. Sau đó, chúng tôi xuất chuỗi kết quả bằng cách sử dụng câu lệnh echo ở phía trước nó

0

Sau khi chạy mã ví dụ trên, PHP sẽ giải mã chuỗi Base64 của chúng tôi trở lại dữ liệu gốc của nó. Trong trường hợp của chúng tôi, đây sẽ là văn bản sau

1

Sử dụng Trường nghiêm ngặt trong Hàm base64_decode[]

Bây giờ chúng ta đã thấy cách sử dụng cơ bản, hãy thử sử dụng hàm

3, nhưng chúng ta sẽ bật chế độ nghiêm ngặt bằng cách đặt tham số thứ hai thành “
cGlteWxpZmV1cC5jb20=
2“

Chúng tôi sẽ điều chỉnh chuỗi được mã hóa của mình bằng cách thêm ba ký tự Base64 không hợp lệ để hiển thị tác dụng của chuỗi này. Đây là dấu chấm than [

base64_decode[string $string, bool $strict = false]: string|false
5], dấu chấm hỏi [
base64_decode[string $string, bool $strict = false]: string|false
6] và dấu thăng [
base64_decode[string $string, bool $strict = false]: string|false
7]

Ở đầu tập lệnh của chúng tôi, chúng tôi xác định biến của mình có tên là “

base64_decode[string $string, bool $strict = false]: string|false
8” và gán cho nó giá trị “
base64_decode[string $string, bool $strict = false]: string|false
9“

Sau đó, chúng tôi sẽ chuyển điều này thành hai cuộc gọi chức năng riêng biệt

  • Cái đầu tiên sẽ sử dụng hàm base64_decode[] của PHP nhưng bị vô hiệu hóa nghiêm ngặt.

    Điều này sẽ cho thấy cách PHP thường xử lý một chuỗi Base64 chứa các ký tự không hợp lệ.
  • Chúng tôi kích hoạt chức năng nghiêm ngặt của base64_decode[] cho cuộc gọi thứ hai bằng cách đặt tham số thứ hai của nó thành
    cGlteWxpZmV1cC5jb20=
    2.

    Thay vì cố gắng loại bỏ các ký tự không hợp lệ, hàm sẽ thất bại và trả về
    cGlteWxpZmV1cC5jb20=
    0.

Đối với cả hai chức năng này, chúng tôi chuyển đầu ra của chúng trực tiếp vào hàm var_dump[] của PHP. Hàm này sẽ in cả giá trị và kiểu dữ liệu được trả về

0

Dưới đây bạn có thể thấy chức năng PHP

3 hoạt động như thế nào khi đặt tham số nghiêm ngặt. Khi nghiêm ngặt không được đặt hoặc đặt thành sai, nó sẽ xóa chuỗi được cung cấp và cố gắng giải mã chuỗi đó

Tuy nhiên, nó sẽ không thành công và trả về

cGlteWxpZmV1cC5jb20=
0 khi chế độ nghiêm ngặt được bật

2

Sự kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách PHP xử lý các chuỗi được mã hóa Base64. Bạn có thể dễ dàng giải mã và mã hóa bất kỳ chuỗi đã cho nào bằng hai hàm đơn giản

Mặc dù ban đầu được thiết kế để giúp gửi dữ liệu nhị phân trong các giao thức được tối ưu hóa cho văn bản, mã hóa này vẫn có những công dụng của nó

Mọi thắc mắc về hàm

7 và
3 các bạn vui lòng comment bên dưới

Hãy chắc chắn kiểm tra các hướng dẫn PHP khác của chúng tôi nếu bạn muốn tìm hiểu thêm. Chúng tôi cũng có nhiều hướng dẫn lập trình khác nếu bạn muốn học một ngôn ngữ mới

Làm cách nào để giải mã chuỗi được mã hóa base64 trong PHP?

The base64_decode[] là một hàm sẵn có trong PHP được sử dụng để Giải mã dữ liệu được mã hóa trong MIME base64. Thông số. Hàm này chấp nhận hai tham số như đã đề cập ở trên và được mô tả bên dưới. dữ liệu $. Đó là tham số bắt buộc chứa chuỗi được mã hóa. $ nghiêm ngặt. Nó là một tham số tùy chọn.

Làm cách nào để mã hóa trong base64 trong PHP?

PHP. Hàm base64_encode[] . Hàm base64_encode[] là một hàm có sẵn trong PHP dùng để Mã hóa dữ liệu với MIME base64. MIME [Tiện ích mở rộng thư Internet đa năng] base64 được sử dụng để mã hóa chuỗi trong base64. Dữ liệu base64_encoded chiếm thêm 33% dung lượng so với dữ liệu gốc.

Làm cách nào để giải mã văn bản 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.

Chủ Đề