Làm cách nào để chuyển đổi chuỗi thành base64 trong php?

hàm base64_encode() có thể mã hóa dữ liệu đã cho bằng base64. Mã hóa này được thiết kế để làm cho dữ liệu nhị phân tồn tại khi vận chuyển qua các lớp vận chuyển không sạch 8 bit, chẳng hạn như nội dung thư. Dữ liệu được mã hóa Base64 có thể chiếm thêm khoảng 33% dung lượng so với dữ liệu gốc

Ghi chú. Hàm này mã hóa tất cả các chuỗi (bao gồm cả nhị phân) thành các ký tự có thể in được. Điều này sẽ khắc phục mọi sự cố với dữ liệu nhị phân tối nghĩa khi lưu trữ trong cơ sở dữ liệu hoặc truyền dữ liệu qua mạng. Nhớ sử dụng hàm convert_uudecode() trước khi sử dụng lại dữ liệu

Tuyên bố từ chối trách nhiệm. Các mẫu mã và API có sẵn tại www. liên kết hướng dẫn. com có ​​sẵn hoàn toàn miễn phí. Bạn có thể tự chịu rủi ro khi sử dụng nó cho mục đích thương mại cũng như phi thương mại, nhưng bạn không thể sử dụng nó để đăng trên blog hoặc các trang web hướng dẫn khác tương tự như www. liên kết hướng dẫn. com mà không đưa link tham chiếu đến bài viết gốc.
Tất cả các mẫu mã và API do tác giả cung cấp đều là sáng tạo của họ và cả tác giả cũng như trang web đều không chịu trách nhiệm nếu nó không hoạt động như dự kiến.

Tôi đồng ý với các điều khoản trên

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

2 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

2 đượ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

2 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 “_______12” 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

base64_decode(string $string, bool $strict = false): string|false

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 (_______70). 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ó

9

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

0

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 (_______75), 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ề

9

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

1

Phần 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

2 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ã cơ sở 64 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 để giải mã một 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 để mã hóa và giải mã ID trong PHP?

php // ví dụ base64_encode()/base64_decode() $string = 'Mã hóa và giải mã mã PHP được mã hóa';

Bộ lọc PHP chuyển đổi mã hóa base64 là gì?

php. //bộ lọc cho phép bút kiểm tra bao gồm các tệp cục bộ và base64 mã hóa đầu ra . Do đó, mọi đầu ra base64 sẽ cần được giải mã để hiển thị nội dung. Một ví dụ sử dụng DVWA. thô tục. php? . // lọc/chuyển đổi. base64-encode/resource=/etc/passwd.