Trong bài viết nhanh này, chúng ta sẽ thảo luận về những điều cơ bản về mã hóa base64 trong ngữ cảnh của PHP. Về cơ bản, chúng ta sẽ xem cách bạn có thể sử dụng các hàm PHP để chuyển đổi dữ liệu sang định dạng được mã hóa base64
Mã hóa Base64 là gì?
Base64 là mã hóa dữ liệu nhị phân trong ASCII. Mỗi ký tự trong chuỗi đại diện cho sáu bit thông tin. Thực tế, nó đại diện cho dữ liệu nhị phân trong biểu diễn cơ sở 64. Kiểm tra mồi này trên các hệ thống số và cơ sở nếu bạn cần bồi dưỡng
Công dụng chính của mã hóa Base64 là mã hóa dữ liệu nhị phân thành văn bản ASCII, khi bạn muốn truyền dữ liệu đó qua các giao thức được thiết kế riêng để xử lý dữ liệu văn bản. Điều này đảm bảo rằng dữ liệu vẫn còn nguyên vẹn trong khi nó được vận chuyển. Cụ thể, Base64 được sử dụng cho những việc như gửi email và tải lên dữ liệu nhị phân ở dạng HTML
Một cách sử dụng phổ biến khác của mã hóa Base64 là băm. Tất nhiên, bạn không được phép sử dụng mã hóa Base64 để tạo băm, vì nó có thể dễ dàng giải mã. Đầu tiên, bạn tạo một hàm băm với sự trợ giúp của thuật toán băm như SHA, sau đó bạn chuyển đổi hàm băm kết quả thành định dạng được mã hóa Base64 để hiển thị nó. Thật dễ dàng để so sánh hai tổng kiểm tra được mã hóa Base64 về tính toàn vẹn
Trong phần tiếp theo, chúng ta sẽ thảo luận về các hàm Base64 tích hợp trong PHP
Hàm Base64 trong PHP
Có hai hàm chính trong PHP xử lý mã hóa Base64. Hàm
$redirectUrl = '//www.example.com/some/other/url';6 cho phép bạn mã hóa dữ liệu ở định dạng MIME Base64. Mặt khác, hàm
$redirectUrl = '//www.example.com/some/other/url';7 được sử dụng để giải mã dữ liệu được mã hóa MIME Base64
Hãy đi qua từng chức năng này một cách chi tiết
cơ sở64_encode
Hãy xem qua cú pháp của hàm
$redirectUrl = '//www.example.com/some/other/url';6
1
base64_encode [ string $string ] : string
Đối số duy nhất bạn cần chuyển đến hàm
$redirectUrl = '//www.example.com/some/other/url';6 là chuỗi nguồn mà bạn muốn mã hóa thành MIME Base64
Điều này trả về một chuỗi được mã hóa Base64. Điều quan trọng cần lưu ý là dữ liệu được mã hóa Base64 chiếm nhiều dung lượng hơn khoảng 33% so với dữ liệu gốc
cơ sở64_decode
Hãy xem qua cú pháp của hàm
$redirectUrl = '//www.example.com/some/other/url';7
1
base64_decode [ string $string , bool $strict = false ] : string|false
Đối số đầu tiên là dữ liệu được mã hóa Base64 mà bạn muốn giải mã
Đối số thứ hai là tùy chọn, nhưng nếu bạn vượt qua
31, nó sẽ thực hiện kiểm tra nghiêm ngặt. Điều này có nghĩa là nếu dữ liệu được mã hóa Base64 chứa các ký tự bên ngoài bảng chữ cái Base64, hàm giải mã sẽ trả về
32. Điều này hữu ích để kiểm tra tính toàn vẹn của chuỗi được mã hóa Base64. Mặt khác, nếu bạn muốn âm thầm loại bỏ các ký tự không hợp lệ, chỉ cần chuyển
32, đây là giá trị mặc định
Khi giải mã thành công, hàm trả về chuỗi đã giải mã, ngược lại trả về
32. Điều quan trọng cần lưu ý là hàm
$redirectUrl = '//www.example.com/some/other/url';7 có thể trả về dữ liệu nhị phân nếu chuỗi được đề cập ở định dạng nhị phân trước khi mã hóa
Trong phần tiếp theo, chúng ta sẽ thảo luận về cách bạn có thể sử dụng các hàm Base64 tích hợp sẵn trong PHP
Cách mã hóa và giải mã dữ liệu với MIME Base64
Trong phần này, chúng ta sẽ đi qua một vài ví dụ để xem hoạt động của các hàm Base64
Mã hóa tham số URL
Thông thường, bạn sẽ sử dụng hàm
$redirectUrl = '//www.example.com/some/other/url';6 để mã hóa các tham số có chứa URL
Hãy nhanh chóng xem nó hoạt động như thế nào với ví dụ sau
1
$redirectUrl = '//www.example.com/some/other/url';6
$redirectUrl = '//www.example.com/some/other/url';7
$redirectUrl = '//www.example.com/some/other/url';
3
$redirectUrl = '//www.example.com/some/other/url';0
base64_encode [ string $string ] : string0
base64_encode [ string $string ] : string1
base64_encode [ string $string ] : string2
base64_encode [ string $string ] : string3
base64_encode [ string $string ] : string4
Như bạn có thể thấy, nếu chúng ta không sử dụng hàm
$redirectUrl = '//www.example.com/some/other/url';6, URL kết quả sẽ giống như
38, URL này không hợp lệ
Tổng kiểm tra được mã hóa Base64
Như chúng ta đã thảo luận trước đó, hàm
$redirectUrl = '//www.example.com/some/other/url';6 rất hữu ích khi chuyển đổi dữ liệu nhị phân thành chuỗi ASCII
Hãy cùng xem ví dụ sau
1
$redirectUrl = '//www.example.com/some/other/url';6
$redirectUrl = '//www.example.com/some/other/url';7
base64_encode [ string $string ] : string8
3
base64_encode [ string $string ] : string4
Trong ví dụ trên, hàm
$redirectUrl = '//www.example.com/some/other/url';00 sẽ trả về dữ liệu nhị phân được băm. Vì vậy, nếu bạn không sử dụng hàm
$redirectUrl = '//www.example.com/some/other/url';6, sẽ khó hiển thị dữ liệu nhị phân kết quả
Tệp đính kèm email
Trong PHP, khi bạn gửi email có tệp đính kèm, bạn có thể mã hóa nội dung tệp thành định dạng được mã hóa Base64. Trên thực tế, nếu bạn đang gửi tệp đính kèm nhị phân thì điều cần thiết là bạn phải mã hóa dữ liệu tệp đính kèm thay vì gửi ở định dạng thô
Hãy cùng xem ví dụ sau
1
$redirectUrl = '//www.example.com/some/other/url';6
$redirectUrl = '//www.example.com/some/other/url';7
14
3
16
$redirectUrl = '//www.example.com/some/other/url';0
18
base64_encode [ string $string ] : string1
base64_decode [ string $string , bool $strict = false ] : string|false0
base64_encode [ string $string ] : string3
base64_decode [ string $string , bool $strict = false ] : string|false2
base64_decode [ string $string , bool $strict = false ] : string|false3
base64_decode [ string $string , bool $strict = false ] : string|false4
base64_decode [ string $string , bool $strict = false ] : string|false5
base64_decode [ string $string , bool $strict = false ] : string|false6
base64_decode [ string $string , bool $strict = false ] : string|false7
base64_decode [ string $string , bool $strict = false ] : string|false8
base64_decode [ string $string , bool $strict = false ] : string|false9
10
11
12
13
14
15
16
17
18
19
$redirectUrl = '//www.example.com/some/other/url';60
$redirectUrl = '//www.example.com/some/other/url';61
$redirectUrl = '//www.example.com/some/other/url';62
$redirectUrl = '//www.example.com/some/other/url';63
$redirectUrl = '//www.example.com/some/other/url';64
$redirectUrl = '//www.example.com/some/other/url';65
$redirectUrl = '//www.example.com/some/other/url';66
$redirectUrl = '//www.example.com/some/other/url';67
$redirectUrl = '//www.example.com/some/other/url';68
$redirectUrl = '//www.example.com/some/other/url';69
12
$redirectUrl = '//www.example.com/some/other/url';71
$redirectUrl = '//www.example.com/some/other/url';72
$redirectUrl = '//www.example.com/some/other/url';73
$redirectUrl = '//www.example.com/some/other/url';74
$redirectUrl = '//www.example.com/some/other/url';75
$redirectUrl = '//www.example.com/some/other/url';76
$redirectUrl = '//www.example.com/some/other/url';77
$redirectUrl = '//www.example.com/some/other/url';78
$redirectUrl = '//www.example.com/some/other/url';79
$redirectUrl = '//www.example.com/some/other/url';0
$redirectUrl = '//www.example.com/some/other/url';1
$redirectUrl = '//www.example.com/some/other/url';2
$redirectUrl = '//www.example.com/some/other/url';3
$redirectUrl = '//www.example.com/some/other/url';4
base64_encode [ string $string ] : string4
Như bạn có thể thấy, chúng tôi đã sử dụng hàm
$redirectUrl = '//www.example.com/some/other/url';6 để mã hóa dữ liệu hình ảnh nhị phân trước khi nó được gửi dưới dạng tệp đính kèm
Bằng cách này, bạn có thể sử dụng các hàm Base64 trong PHP cho nhiều mục đích khác nhau
Sự kết luận
Trong bài viết nhanh này, chúng ta đã thảo luận về cách bạn có thể sử dụng các hàm Base64 trong quá trình phát triển PHP hàng ngày của mình.