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
4b. 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 uuencoded3. 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 PHPa. 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à
32UTF-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à
6Xin 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àmbase64_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àyChứ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 “
0” theo mặc định.cGlteWxpZmV1cC5jb20=
Bằng cách đặt
9 thành “
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.cGlteWxpZmV1cC5jb20=
Khi được đặt thành “
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ả.cGlteWxpZmV1cC5jb20=
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ạnVí 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 đâyVí 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àySau đó, 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ó
9Sau 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
0Sử 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
2.cGlteWxpZmV1cC5jb20=
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ề
0.cGlteWxpZmV1cC5jb20=
Đố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ề
9Dướ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
1Sự 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ướiHã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