Hướng dẫn base64 javascript
Chào mọi người, trong bài viết hôm nay mình xin cố gắng đi sâu vào một khái niệm mà có lẽ tất cả chúng ta đã từng gặp và sử dụng khá nhiều trong công việc đặc biệt là trong các thao tác với files và ảnh. Đó là khái niệm 1. Khái niệmbase64 là phương thức convert dạng mã hóa 2 chiều từ Sự ra đời của Rõ ràng mã ASCII có 128 giá trị nhưng tại sao lại là 2. Base64 hoạt động như thế nào?Để
hiểu hơn và khái niệm Quá trình thực hiện theo 4 bước.
Thật thú vị là các ký tự giống nhau sẽ được mã hóa khác nhau, tùy thuộc vào vị trí của chúng trong 3 octet để tạo ra 4 ký tự. Và một image sau khi bị
Các bạn thấy quen chứ ?
Bảng mã convert Cùng xem qua ví dụ sau để hiểu rõ hơn về cách convert của Binary tương ứng của string trên là : 01110010 01100001 01110110 Bước đầu tiên là chúng ta chia 3 octet trên thành nhóm 6 bít Binary 011100 100110 000101 110110 Từ đó số thập phân tưng ứng với 4 nhóm mới sẽ là : 28 38 5 54 Từ bảng trên chúng ta sẽ có được chuỗi ký tự sau khi mã hóa tương ứng như sau: 28 = c 38 = m 5 = F 54 = 2 Vì thế rav sau khi qua Nhưng điều gì sẽ sảy ra nếu số byte không chia hết cho 3, ví dụ 4 byte thì chúng ta sẽ có tất cả 4x8=32 bits. Sau khi chia làm từng nhóm 6 bits chúng ta sẽ được 5 nhóm và còn thiếu 4 bit để đủ 1 nhóm. Ví dụ với string : rave Binary - 01110010 01100001 01110110 01100101 3 byte đầu tiên của chúng tôi mã hóa giống nhau. Nhưng 8 bit cuối cùng không phân chia hết. Vì vậy, để mã hóa trong base64 chúng ta thực cần 12 bit. Các bit còn lại được đệm bằng số không. Cái kết như sau : Binary 01110010 01100001 01110110 01100101 011001 010000 Decimal 25 16 Base64 Z Q Nhưng dù thêm hay bớt, có vay có trả chúng ta vẫn thiếu 2 ký tự, cho nên kết thúc chuỗi mã hóa chúng ta phải có ký tự đệm cho nó. trong MIME RFC ký tự đệm là = Kết quả sau khi mã hóa base64 chúng ta được : cmF2ZQ== Cuối cùng chúng ta có thể thấy cứ 3 byte lại bị mã hóa thành 4 ký tự cho nên việc gửi mail hoặc gửi ảnh bị giới hạn dung lượng cũng vì lẽ đó, hoặc chúng ta không nên lưu trực tiếp base64 vào database cho dù điều đó là có thể. 3. Kết luậnTrên đây là một số tìm hiểu của mình về 4. Tài liệu tham khảohttps://en.wikipedia.org/wiki/Base64 https://www.quora.com/Why-do-we-use-Base64 |