Hướng dẫn dùng base64 encoded trong PHP

Xin chào các bạn trẻ, bài viết hôm nay mình sẻ tiếp tục hướng dẫn các bạn cách truy vấn mã hóa và giải mã thuật toán Base64 trên Sqlserver.

Base64 là một chương trình mã hóa chuỗi ký tự bằng cách dùng thay thế các ký tự trong bảng mã ASCII 8 bit thông dụng thành bảng mã 6 bit.

Nó thường được sử dụng để mã hóa các tập tin đa phương tiện [hình ảnh, âm thanh, video,…]. Ký tự 64 trong Base64 là đại diện cho 64 ký tự trong bãng mã ASCII

Để hiển thị chuỗi giải mã đọc được từ ký tự unicode mã hóa bởi json_encode, chúng ta gọi hàm json_decode

print_r[json_decode['["Vay theo l\u01b0\u01a1ng"]']];

Kết quả chuyển thành mảng có chứa ký tự đã giải mã:

Array [ [0] => Vay theo lương ]

unescape unicode
Nếu bạn muốn hiển thị chuỗi unicode về phía người dùng như đầu vào, có thể đọc được hay nghĩa là đã giải mã, thì thêm tham số

[{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]
3 vào hàm json_encode. Ví dụ:

json_encode[array['fullname'=>'hoàng'],JSON_UNESCAPED_UNICODE];

Hiển thị nguyên ký tự unicode như đầu vào.

Cách khác cho kết quả tương tự như vậy, chúng ta mã hóa dạng entity trước khi gọi json_encode và decode entity sau khi được chuỗi json.

Một số kiểu encoding có thể sử dụng

MD5 converter
SHA1 converter
Chatset converter / iconv
Base64 encode
Base64 decode
UTF8 encode
UTF8 decode
Raw url encode
Raw url decode
HTML entities encode
HTML entities decode
Unix Time to Human Date
Human Date to Unix Time Stamp
Remove duplicate lines
Sort text lines
Pirate Text
Backwards – Mirrored Text

Sử dụng công cụ chuyển đổi encoding/decoding chuỗi online:
//www.cafewebmaster.com/online_tools/utf8_encode.

Mã hóa đối tượng

Nhiều lúc việc mã hóa mảng thành chuỗi json không tiện cho lắm, dễ bị người khác đọc dữ liệu vì tính bảo mật. Có một cách khác giúp bạn mã hóa mọi đối tượng thành kiểu chuỗi, và WordPress cũng đã sử dụng cách mã hóa các đối tượng của nó với kiểu này.

Bằng cách sử dụng hàm

[{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]
4 để mã hóa đối tượng và hàm ngược
[{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]
5 sẽ biến nội dung kiểu chuỗi được mã hóa bởi
[{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]
4 thành chính object trước đó.

Như ví dụ trên, ta thấy array $data được Serialize thành chuỗi:

a:2:{s:4:"name";s:3:"Hoang";s:3:"old";i:24;}

Rất tiện cho các bạn lưu các đối tượng PHP vào Database.
Lưu ý: Ta có thể sử dụng serialize[] và unserialize[] cho mọi đối tượng PHP: object, array, base object,…

Trong WordPress có viết hàm giúp bạn kiểm tra một chuỗi được tạo bởi serialize từ một đối tượng, trước khi sử dụng hàm giải mã đối tượng unserialize bạn nên kiểm tra có hợp lệ không với hàm is_serialized của wordpress. Hàm này mình trích dẫn có sẵn trong wordpress rồi nhé:

Cách sử dụng:

if[is_serialized[$str]]{
	var_dump[unserialize[$str]];
}

Chú ý: bạn không thể mã hóa hàm bằng serialize là không cho phép. Ngoài cách sử dụng hàm is_serialize của wordpress có thể dùng trực tiếp hàm có khả năng giải mã chuỗi thành đối tượng hay không:

[{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]
0

Bạn có thể kết hợp giữa kiểu mã hóa mảng với serialize và base64, bảo mật 100% khiến người dùng không thể đọc chuỗi mã hóa cuối cùng của mảng.

[{"fullname":"hoang","address":"An Giang","loanType":"Vay theo l\u01b0\u01a1ng"}]
1

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook

Chủ Đề