Chuyển đổi PNG sang Base64 trực tuyến và sử dụng nó làm trình tạo, cung cấp các ví dụ được tạo sẵn cho URI dữ liệu, img src, url nền CSS và những thứ khác. Trình chuyển đổi PNG sang Base64 giống hệt với Image to Base64, với điểm khác biệt duy nhất là nó buộc loại mime là “image/png” [ngay cả khi tệp đã tải lên có loại nội dung khác hoặc không thể phát hiện tệp này]. Xin lưu ý rằng bộ mã hóa PNG sang Base64 chấp nhận mọi loại hình ảnh có kích thước lên tới 50 MB. Nếu bạn đang tìm quy trình ngược lại, hãy kiểm tra Base64 to PNG
Loại dữ liệuTệp cục bộ*Chọn một tệp hoặc kéo và thả tệp vào đâyURL từ xa*Chỉ định URL đầy đủ của tệp từ xaĐịnh dạng đầu raMã hóa PNG thành Base64cơ sở64Kết quả mã hóa Base64 sẽ xuất hiện ở đây
Cách chuyển đổi PNG sang Base64 trực tuyến
- Chọn nguồn hình ảnh từ trường “Datatype”
- Dán URL hoặc chọn hình ảnh PNG từ máy tính của bạn
- Nếu cần, hãy chọn định dạng đầu ra mong muốn
- Nhấn nút “Mã hóa PNG thành Base64”
- Tải xuống hoặc sao chép kết quả từ trường “Base64”
Giới thiệu PNG
- Tên. Biểu đồ minh họa mạng lưới không dây
- nhà phát triển. Nhóm phát triển PNG
- loại MIME. hình ảnh/png
- Phần mở rộng tệp. . png
- Mã định danh loại thống nhất. công cộng. png
- Loại định dạng. Hình ảnh bitmap không mất dữ liệu
định dạng đầu ra
Nếu bạn không biết mình cần định dạng đầu ra nào, hãy kiểm tra các ví dụ sau để xem kết quả của cùng một hình ảnh PNG được mã hóa Base64 được định dạng ở mỗi định dạng có sẵn sẽ trông như thế nào [như hình ảnh ví dụ tôi sử dụng chấm đỏ một pixel
• Văn bản thô.iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
• URI dữ liệu. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
• Hình nền CSS. .base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
• Biểu tượng yêu thích HTML.
• Siêu liên kết HTML.
• Hình ảnh HTML.
• Khung nội tuyến HTML.
The “iframe” tag is not supported by your browser.
• Hình ảnh JavaScript. var img = new Image[];
img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC";
document.body.appendChild[img];
• Cửa sổ bật lên JavaScript. window. title = function [] {
this.open["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"];
};
• JSON. {
"image": {
"mime": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"
}
}
• XML. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
0Nếu tôi bỏ lỡ một định dạng đầu ra quan trọng cho hình ảnh PNG được mã hóa Base64, vui lòng cho tôi biết — tôi rất muốn triển khai định dạng đó
Giả sử bạn có tệp hình ảnh nhị phân muốn chuyển qua mạng. Bạn ngạc nhiên vì phía bên kia không nhận được tệp đúng cách—tệp chỉ chứa các ký tự lạ
Chà, có vẻ như bạn đã cố gửi tệp của mình ở định dạng bit và byte thô, trong khi phương tiện được sử dụng được thiết kế để truyền phát văn bản
Điều gì sẽ là cách giải quyết để tránh một vấn đề như vậy? . Trong bài viết này, tôi sẽ chỉ cho bạn cách chúng ta có thể sử dụng Python để mã hóa và giải mã một hình ảnh nhị phân. Chương trình được minh họa như một chương trình cục bộ độc lập, nhưng bạn có thể áp dụng khái niệm này cho các ứng dụng khác nhau như gửi hình ảnh được mã hóa từ thiết bị di động của bạn đến máy chủ và nhiều ứng dụng khác
Base64 là gì?
Trước khi đi sâu hơn vào bài viết, hãy xác định ý nghĩa của Base64
Base64 là cách mà dữ liệu nhị phân 8 bit được mã hóa thành định dạng có thể được biểu diễn bằng 6 bit. Điều này được thực hiện chỉ bằng cách sử dụng các ký tự
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
17, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
18, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
19, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 để biểu thị dữ liệu, với data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 được sử dụng để đệm dữ liệu. Chẳng hạn, sử dụng mã hóa này, ba byte 8 bit được chuyển đổi thành bốn nhóm 6 bitThuật ngữ Base64 được lấy từ tiêu chuẩn Phần mở rộng thư Internet đa năng [MIME], được sử dụng rộng rãi cho HTTP và XML và ban đầu được phát triển để mã hóa các tệp đính kèm email để truyền
Tại sao chúng ta sử dụng Base64?
Base64 rất quan trọng đối với việc biểu diễn dữ liệu nhị phân, vì nó cho phép dữ liệu nhị phân được biểu diễn theo cách nhìn và hoạt động như văn bản thuần túy, điều này làm cho nó đáng tin cậy hơn khi được lưu trữ trong cơ sở dữ liệu, gửi trong email hoặc sử dụng trong văn bản dựa trên . Base64 về cơ bản được sử dụng để biểu diễn dữ liệu ở định dạng chuỗi ASCII
Như đã đề cập trong phần giới thiệu của bài viết này, không có Base64 đôi khi dữ liệu sẽ không thể đọc được
Mã hóa Base64
Mã hóa Base64 là quá trình chuyển đổi dữ liệu nhị phân thành một bộ ký tự giới hạn gồm 64 ký tự. Như đã trình bày trong phần đầu tiên, những ký tự đó là
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
17, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
18, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
19, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 [hãy đếm chúng, bạn có để ý rằng chúng cộng lại thành 64 không?]. Bộ ký tự này được coi là bộ ký tự phổ biến nhất và được gọi là Base64 của MIME. Nó sử dụng data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
17, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
18 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
19 cho 62 giá trị đầu tiên và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 cho hai giá trị cuối cùngDữ liệu được mã hóa Base64 cuối cùng dài hơn dữ liệu gốc, do đó, như đã đề cập ở trên, cứ 3 byte dữ liệu nhị phân, có ít nhất 4 byte dữ liệu được mã hóa Base64. Điều này là do thực tế là chúng tôi đang nén dữ liệu thành một tập hợp các ký tự nhỏ hơn
Bạn đã bao giờ nhìn thấy một phần của tệp email thô như tệp được hiển thị bên dưới [rất có thể bắt nguồn từ một email không được gửi] chưa? . [Nếu bạn chú ý đến
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 ở cuối, bạn có thể kết luận rằng đây là mã hóa Base64, vì dấu bằng được sử dụng trong quá trình mã hóa cho phần đệm. ].base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
4
0
1
2
3
4
5
6data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
40data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
41data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
42data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
43data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
44data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
45data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
46data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
47data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
48data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
49
00
01
02
03
04
05
1Base64 được thực hiện theo nhiều bước, như sau
- Văn bản được mã hóa được chuyển đổi thành các giá trị thập phân tương ứng của nó, nghĩa là thành ASCII tương đương của chúng [i. e. một. 97, b. 98, v.v. ]. Đây là bảng ASCII
- Các giá trị thập phân thu được ở bước trên được chuyển đổi thành các giá trị nhị phân tương đương [i. e. 97. 01100001]
- Tất cả các số nhị phân tương đương được nối, thu được một tập hợp lớn các số nhị phân
- Tập hợp lớn các số nhị phân được chia thành các phần bằng nhau, với mỗi phần chỉ chứa 6 bit
- Các bộ 6 bit bằng nhau được chuyển đổi thành số thập phân tương đương của chúng
- Cuối cùng, các số thập phân tương đương được chuyển đổi thành các giá trị Base64 của chúng [i. e. 4. đ]. Dưới đây là các giá trị thập phân và bảng chữ cái Base64 của chúng
Giải mã Base64
Giải mã Base64 ngược lại với mã hóa Base64. Nói cách khác, nó được thực hiện bằng cách đảo ngược các bước được mô tả trong phần trước
Vì vậy, các bước giải mã Base64 có thể được mô tả như sau
- Mỗi ký tự trong chuỗi được thay đổi thành giá trị thập phân Base64
- Các giá trị thập phân thu được được chuyển đổi thành các giá trị nhị phân tương đương của chúng
- Hai bit đầu tiên của số nhị phân được cắt bớt từ mỗi số nhị phân thu được và bộ 6 bit được kết hợp, tạo thành một chuỗi lớn các chữ số nhị phân
- Chuỗi lớn các chữ số nhị phân thu được ở bước trước được chia thành các nhóm 8 bit
- Các số nhị phân 8 bit được chuyển đổi thành số thập phân tương đương của chúng
- Cuối cùng, các giá trị thập phân thu được được chuyển đổi thành ASCII tương đương của chúng
Mã hóa và giải mã Base64 của chuỗi
Bạn sẽ dễ hiểu hơn về cách thức hoạt động của tất cả những thứ này khi bạn thấy những gì đang diễn ra đằng sau hậu trường. Hãy thử mã hóa và giải mã một từ có ba chữ cái đơn giản,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
414Chúng tôi bắt đầu bằng cách chuyển đổi từng chữ cái của từ thành ASCII tương đương của nó, sau đó chuyển đổi ASCII tương đương thành nhị phân. Điều này mang lại cho chúng ta các giá trị sau
Chữ Giá trị chỉ mục ASCII Giá trị nhị phân 8-bitH7201001000e10101100101y12101111001Nói cách khác, chúng ta có thể viết
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
414 ở dạng nhị phân như thế này.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
08Có tổng cộng 24 bit, khi được chuyển thành các nhóm 6 bit, mỗi kết quả sẽ có bốn giá trị
.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
10Trong bảng Base64, các ký tự
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
416 đến data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
417 được biểu thị bằng các giá trị từ 0 đến 25. Các ký tự data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
418 đến data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
419 được biểu thị bằng các giá trị từ 26 đến 51. Các số data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
420 đến data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
421 được biểu thị bằng các giá trị từ 52 đến 61. Các ký tự data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 được đại diện bởi 62 và 63. Ký tự data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 được sử dụng để đệm khi không thể chia đúng các bit thành các nhóm 6Bây giờ chúng ta sẽ chuyển đổi các bit được sắp xếp lại thành các giá trị số và sau đó lấy ký tự đại diện cho các giá trị số đó
Giá trị nhị phân 6 bit ValueBase64 Index ValueLetter01001018S0001106G01010121V111001575Dựa trên các tính toán của chúng tôi ở trên, chữ cái
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
414 sẽ trở thành data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
426 khi được mã hóa Base64. Chúng tôi có thể kiểm tra xem điều đó có đúng không bằng cách sử dụng đoạn mã sau.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
12______30
2
15
3
5
18data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
20Toàn bộ quá trình được thực hiện ngược lại để lấy lại dữ liệu gốc của chúng tôi sau khi giải mã Base64
Bây giờ, tôi sẽ nhanh chóng cho bạn thấy cách mã hóa của một từ khác,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
427, để giải thích sự xuất hiện của data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 trong chuỗi được mã hóaChữ Giá trị chỉ mục ASCII Giá trị nhị phân 8-bitH7201001000e10101100101y12101111001o11101101111Có tổng cộng 32 bit. Điều này sẽ cung cấp cho chúng tôi năm nhóm 6 bit khác nhau, với hai bit còn lại.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
429. Chúng tôi đệm chúng bằng data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
430 để có được một nhóm 6 bit. Tạo các nhóm 6 bit từ cách sắp xếp trên sẽ cung cấp cho bạn thông tin sau.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
22Các bit được sắp xếp lại sẽ trả lại cho bạn các ký tự sau dựa trên các giá trị chỉ mục Base64
Giá trị nhị phân 6 bit ValueBase64 Index ValueLetter01001018S0001106G01010121V11100157501101127b11000048wĐiều này có nghĩa là giá trị được mã hóa Base64 của chúng tôi cho
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
427 sẽ là data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
432. Mỗi data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 đại diện cho một cặp data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
434 mà chúng tôi đã thêm vào để đệm chuỗi bit ban đầu.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
24
0
2
27
3
5
30data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
32Base64 Mã hóa hình ảnh
Bây giờ chúng ta hãy đi vào phần chính của bài viết này. Trong phần này, tôi sẽ chỉ cho bạn cách chúng ta có thể dễ dàng mã hóa Base64 một hình ảnh bằng Python
Tôi sẽ sử dụng hình ảnh nhị phân sau. Hãy tiếp tục và tải xuống và bắt đầu sử dụng Python. [Tôi cho rằng tên của hình ảnh là con nai. gif. ]
Điều đầu tiên chúng ta phải làm để sử dụng Base64 trong Python là nhập mô-đun base64
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
435Để mã hóa hình ảnh, chúng tôi chỉ cần sử dụng chức năng
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
436. Python mô tả chức năng như sauMã hóa đối tượng giống như byte
437 bằng Base64 và trả về các byte được mã hóadata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
Do đó, chúng ta có thể thực hiện các thao tác sau để mã hóa Base64 cho hình ảnh của mình
.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
34
0
36
2
38
3
40Nếu bạn muốn xem đầu ra của quá trình mã hóa, hãy gõ như sau
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
438Base64 giải mã một hình ảnh
Để giải mã một hình ảnh bằng Python, chúng ta chỉ cần sử dụng hàm
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
439. Python đề cập đến những điều sau đây về chức năng nàyGiải mã đối tượng giống như byte được mã hóa Base64 hoặc chuỗi ASCII s và trả về byte đã giải mã
Vì vậy, để giải mã hình ảnh chúng tôi đã mã hóa trong phần trước, chúng tôi làm như sau
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
440Để tất cả chúng cùng nhau
Hãy cùng nhau đặt chương trình mã hóa và giải mã Base64 cho một hình ảnh. Tập lệnh Python thực hiện điều đó sẽ trông giống như sau
.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
42______30
44
2
46
3
48
5
50data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
52data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
41
54Nếu bạn mở Deer_decode. gif mà bạn có trên máy tính để bàn của mình, bạn sẽ nhận thấy rằng bạn có hình ảnh con nai gốc. gif chúng tôi đã mã hóa trong bước đầu tiên
Như chúng ta đã thấy trong bài viết này, Python giúp dễ dàng thực hiện những gì có vẻ là một nhiệm vụ phức tạp.
Mã hóa và giải mã an toàn URL
Như tôi đã đề cập trước đó trong hướng dẫn, mã hóa Base64 cũng sử dụng các ký tự
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 bên cạnh các giá trị chữ và số thông thường. Tuy nhiên, những ký tự này có ý nghĩa đặc biệt trong URL. Điều này có nghĩa là giá trị được mã hóa Base64 sử dụng các ký tự này có thể dẫn đến hành vi không mong muốn nếu được sử dụng bên trong URLMột giải pháp cho vấn đề này là sử dụng các hàm
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
443 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
444 để mã hóa và giải mã bất kỳ dữ liệu nào. Các chức năng này thay thế data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 bằng data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
446 và data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 bằng data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
448 trong quá trình mã hóaĐây là một ví dụ trong Python cho thấy sự khác biệt này
.base64 {
background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
42
0
2
59
3
61
5data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
64data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
41
66data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
43data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
45
69data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
47data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
11data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
49
01data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
14
03data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
16Học Python
Tìm hiểu Python với hướng dẫn hướng dẫn Python hoàn chỉnh của chúng tôi, cho dù bạn mới bắt đầu hay bạn là một lập trình viên dày dặn đang muốn học các kỹ năng mới
Bài đăng này đã được cập nhật với sự đóng góp từ Nitish Kumar. Nitish là nhà phát triển web có kinh nghiệm tạo trang web Thương mại điện tử trên nhiều nền tảng khác nhau. Anh ấy dành thời gian rảnh của mình để thực hiện các dự án cá nhân giúp cuộc sống hàng ngày của anh ấy dễ dàng hơn hoặc đi dạo buổi tối dài với bạn bè