Bạn có thể mã hóa một chuỗi trong php không?

Với PHP, giống như bất kỳ ngôn ngữ nào khác, chúng ta có thể thực hiện mã hóa hoặc giải mã trên bất kỳ loại chuỗi, thực thể HTML, đối tượng json hoặc URL nào

PHP đang cung cấp nhiều hàm dựng sẵn khác nhau cho điều đó. Nhưng đôi khi chúng ta có thể không nhận thức được các chức năng đó

Hãy khám phá chúng

1. HTML

PHP luôn đi kèm với các thực thể HTML. Nếu có yêu cầu mã hóa/giải mã các thực thể HTML, đây là các giải pháp

a. mã hóa. htmlentity[]

Hàm này sẽ chuyển đổi các ký tự thành các thực thể HTML như

2 ,
3 hoặc
4

b. giải mã. html_entity_decode[]

Nó là chức năng đảo ngược cho

5. Có nghĩa là nó chuyển đổi các thực thể HTML thành các ký tự

2. UUEncode [Mã hóa đơn vị sang Unix]

Mã hóa này là một dạng chuyển đổi nhị phân thành văn bản trong hệ thống Unix. Nó được sử dụng để mã hóa và giải mã các tệp được trao đổi giữa người dùng hoặc hệ thống trong mạng

PHP cũng cung cấp một cách để chuyển đổi các loại chuỗi này

a. mã hóa.
6

Hàm này mã hóa chuỗi bằng thuật toán uuencode

b. giải mã. convert_uudecode[]

Một lần nữa, nó ngược lại với

6. Nó giải mã chuỗi uuencoded

3. URL

PHP cung cấp các chức năng tích hợp để mã hóa/giải mã URL. Hãy xem nó

a. mã hóa. mã url[]

Hàm này được sử dụng để mã hóa URL và trả về một chuỗi. Bạn có thể tham khảo thêm về nó trong tài liệu chính thức của PHP

b. giải mã. mã url[]

Hàm này giải mã chuỗi và trả về URL gốc

4. cơ sở64

Chuyển đổi Base64 được sử dụng để bảo mật dữ liệu qua mạng. Đây là một lời giải thích hay về lý do tại sao base64 được sử dụng cho

PHP có các hàm

8 và
9 cho điều đó

a. mã hóa. cơ sở64_encode[]

Mã hóa chuỗi đã cho trong Base64 MIME

b. giải mã. cơ sở64_decode[]

Giải mã chuỗi mã hóa base64

5. JSON

Nếu chúng ta muốn làm việc với mảng và json trong PHP, thì nó có các hàm như

0 và
1. Hãy hiểu việc sử dụng chúng trong PHP

a. mã hóa. json_encode[]

Nó mã hóa một giá trị nhất định trong đối tượng JSON

b. giải mã. json_decode[]

Nó được sử dụng để giải mã đối tượng JSON thành đối tượng PHP

6. ROT13

ROT13 là một kỹ thuật mật mã thường thay thế một chữ cái bằng chữ cái thứ 13 sau nó trong bảng chữ cái. Nhưng các ký tự số và không theo bảng chữ cái vẫn còn nguyên

str_rot13[]

Nếu có trường hợp chúng ta chỉ phải mã hóa bảng chữ cái, chúng ta có thể sử dụng phương pháp này. Bởi vì nó chỉ thay thế bảng chữ cái

  • mã hóa. Chúng tôi sẽ chuyển một chuỗi gốc tới
    30 và nó sẽ xuất ra một chuỗi được mã hóa
  • giải mã. Chúng tôi sẽ chuyển chuỗi được mã hóa tới
    30 và nó sẽ xuất ra chuỗi gốc

7. UTF8

Đó là hệ thống mã hóa cho Unicode được sử dụng để tính toán. Đây là phương pháp tiêu chuẩn để mã hóa văn bản trên web. HTML có bộ ký tự mặc định là

32

UTF-8 đã được phát triển để chuyển một ký tự Unicode từ máy tính này sang máy tính khác

a. mã hóa. utf8_encode[]

Hàm này mã hóa chuỗi ISO-8859–1 thành UTF-8. tìm hiểu thêm về nó trên tài liệu chính thức của PHP

b. giải mã. utf8_decode[]

Hàm này được sử dụng để giải mã chuỗi UTF-8 thành ISO-8859–1

Để kết luận

Đó là nó cho ngày hôm nay, hy vọng bạn đã học được điều gì đó mới. Bài viết sẽ hữu ích để xác định phương pháp nào bạn nên sử dụng trong mã của mình để mã hóa/giải mã

Nếu bạn biết các chức năng sẵn có khác để mã hóa và giải mã trong PHP, hãy cho tôi biết trong phần phản hồi bên dưới. Tôi sẽ xem liệu tôi có thể đưa chúng vào blog không

Unicode là một tiêu chuẩn phổ quát và đã được phát triển để mô tả tất cả các ký tự có thể có của tất cả các ngôn ngữ cộng với rất nhiều ký hiệu với một số duy nhất cho mỗi ký tự/ký hiệu

Tuy nhiên, không phải lúc nào cũng có thể chuyển một ký tự Unicode sang máy tính khác một cách đáng tin cậy. UTF-8 đã được phát triển để chuyển một ký tự Unicode từ máy tính này sang máy tính khác

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 MIME Base64 để mã hóa. 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

5 và
6

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

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

5 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à

6 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

6 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 PHP

6 sẽ trả về “_______ 60” 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

6 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

6. 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
6. 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

6, 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

6 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

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ó

Nếu có thắc mắc gì về hàm

5 và
6, 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 để mã hóa và giải mã một chuỗi trong PHP?

Ngôn ngữ lập trình PHP chứa các hàm tích hợp để thực hiện mã hóa và giải mã Base64. Hàm PHP được sử dụng để mã hóa Base64 là “base64_encode”, trong khi hàm được sử dụng để giải mã là “base64_decode” . Cả hai hàm này đều chấp nhận một tham số duy nhất.

PHP sử dụng mã hóa chuỗi nào?

Mã hóa nguồn mặc định được PHP sử dụng là ISO-8859-1 . Mã hóa mục tiêu được thực hiện khi PHP chuyển dữ liệu tới các hàm xử lý XML.

Cách sử dụng UTF

Mã hóa PHP UTF-8 – sửa đổi mã của bạn. .
Đặt UTF-8 làm bộ ký tự cho tất cả các tiêu đề được xuất ra bằng mã PHP của bạn. .
Chỉ định UTF-8 làm loại mã hóa cho XML. .
Loại bỏ các ký tự không được hỗ trợ khỏi XML. .
Chỉ định UTF-8 làm bộ ký tự cho tất cả nội dung HTML

PHP có hỗ trợ UTF không

Hãy nhớ rằng PHP không hỗ trợ UTF-8 ? . “chuỗi được trả về sẽ chứa tối đa các ký tự có độ dài bắt đầu từ đầu. " Thay vào đó, nó thực sự đếm byte.

Chủ Đề