Cách giải mã tệp trong python
Bạn đã bao giờ nhận được một tệp PDF hoặc tệp hình ảnh từ ai đó qua email, chỉ để xem các ký tự lạ khi bạn mở nó chưa? . Các tệp có dữ liệu nhị phân, byte đại diện cho thông tin phi văn bản như hình ảnh, có thể dễ dàng bị hỏng khi được chuyển và xử lý sang hệ thống chỉ có văn bản Show
Mã hóa Base64 cho phép chúng tôi chuyển đổi byte chứa dữ liệu nhị phân hoặc văn bản thành ký tự ASCII. Bằng cách mã hóa dữ liệu của mình, chúng tôi cải thiện khả năng dữ liệu được các hệ thống khác nhau xử lý chính xác Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách hoạt động của mã hóa và giải mã Base64 cũng như cách sử dụng nó. Sau đó, chúng tôi sẽ sử dụng Python để mã hóa Base64 và giải mã cả dữ liệu văn bản và dữ liệu nhị phân Mã hóa Base64 là gì?Mã hóa Base64 là một loại chuyển đổi byte thành ký tự ASCII. Trong toán học, cơ sở của một hệ thống số là có bao nhiêu ký tự khác nhau đại diện cho các số. Tên của mã hóa này xuất phát trực tiếp từ định nghĩa toán học của các cơ số - chúng tôi có 64 ký tự đại diện cho các số Bộ ký tự Base64 chứa
Khi máy tính chuyển đổi các ký tự Base64 thành nhị phân, mỗi ký tự Base64 đại diện cho 6 bit thông tin Ghi chú. Đây không phải là thuật toán mã hóa và không được sử dụng cho mục đích bảo mật Bây giờ chúng ta đã biết mã hóa Base64 là gì và nó được thể hiện như thế nào trên máy tính, hãy tìm hiểu sâu hơn về cách thức hoạt động của nó Mã hóa Base64 hoạt động như thế nào?Chúng tôi sẽ minh họa cách mã hóa Base64 hoạt động bằng cách chuyển đổi dữ liệu văn bản, vì nó tiêu chuẩn hơn các định dạng nhị phân khác nhau để lựa chọn. Nếu chúng tôi mã hóa Base64 một chuỗi, chúng tôi sẽ làm theo các bước sau
Hãy xem cách nó hoạt động bằng cách chuyển đổi chuỗi "Python" thành chuỗi Base64 Các giá trị ASCII của các ký tự 3 tương ứng là 4. Chúng ta có thể biểu diễn các giá trị ASCII này ở dạng nhị phân 8 bit như sau
Nhớ lại rằng các ký tự Base64 chỉ đại diện cho 6 bit dữ liệu. Bây giờ chúng tôi nhóm lại các chuỗi nhị phân 8 bit thành các khối 6 bit. Nhị phân kết quả sẽ trông như thế này
Ghi chú. Đôi khi chúng tôi không thể nhóm dữ liệu thành các chuỗi 6 bit. Nếu điều đó xảy ra, chúng ta phải đệm trình tự Với dữ liệu của chúng tôi trong các nhóm 6 bit, chúng tôi có thể lấy giá trị thập phân cho mỗi nhóm. Sử dụng kết quả cuối cùng của chúng tôi, chúng tôi nhận được các giá trị thập phân sau
Cuối cùng, chúng tôi sẽ chuyển đổi các số thập phân này thành ký tự Base64 thích hợp bằng cách sử dụng bảng chuyển đổi Base64 Như bạn có thể thấy, giá trị 5 tương ứng với chữ cái 6. Sau đó, chúng tôi xem xét 7 và quan sát nó được ánh xạ tới 8. Tiếp tục tra cứu này cho tất cả các giá trị thập phân, chúng tôi có thể xác định rằng "Python" được biểu thị là 9 khi mã hóa Base64. Bạn có thể xác minh kết quả này bằng công cụ chuyển đổi trực tuyếnĐể mã hóa Base64 một chuỗi, chúng tôi chuyển đổi nó thành chuỗi nhị phân, sau đó thành chuỗi thập phân và cuối cùng, sử dụng bảng tra cứu để lấy chuỗi ký tự ASCII. Với sự hiểu biết sâu sắc hơn về cách thức hoạt động của nó, hãy xem tại sao chúng tôi mã hóa Base64 cho dữ liệu của mình Tại sao nên sử dụng Mã hóa Base64?Trong máy tính, tất cả dữ liệu thuộc các loại khác nhau được truyền dưới dạng 1 và 0. Tuy nhiên, một số kênh giao tiếp và ứng dụng không thể hiểu tất cả các bit mà nó nhận được. Điều này là do ý nghĩa của chuỗi các số 1 và 0 phụ thuộc vào loại dữ liệu mà nó đại diện. Ví dụ: 0 phải được xử lý theo cách khác nếu nó đại diện cho một chữ cái hoặc hình ảnhĐể khắc phục giới hạn này, bạn có thể mã hóa dữ liệu của mình thành văn bản, cải thiện khả năng dữ liệu được truyền và xử lý chính xác. Base64 là một phương pháp phổ biến để lấy dữ liệu nhị phân thành các ký tự ASCII, được đa số các mạng và ứng dụng hiểu rộng rãi Một tình huống phổ biến trong thế giới thực nơi mã hóa Base64 được sử dụng nhiều là trong các máy chủ thư. Ban đầu chúng được xây dựng để xử lý dữ liệu văn bản, nhưng chúng tôi cũng mong muốn chúng gửi hình ảnh và phương tiện khác cùng với tin nhắn. Trong những trường hợp đó, dữ liệu phương tiện của bạn sẽ được mã hóa Base64 khi nó được gửi. Sau đó, nó sẽ được giải mã Base64 khi nhận được để ứng dụng có thể sử dụng nó. Vì vậy, ví dụ, hình ảnh trong HTML có thể trông như thế này 3Hiểu rằng dữ liệu đôi khi cần được gửi dưới dạng văn bản để dữ liệu không bị hỏng, hãy xem cách chúng ta có thể sử dụng Python để mã hóa và giải mã dữ liệu Base64 Mã hóa chuỗi bằng PythonPython 3 cung cấp một mô-đun 1 cho phép chúng ta dễ dàng mã hóa và giải mã thông tin. Trước tiên, chúng tôi chuyển đổi chuỗi thành một đối tượng giống như byte. Sau khi chuyển đổi, chúng ta có thể sử dụng mô-đun 1 để mã hóa nóTrong một tệp mới 3, hãy nhập thông tin sau 7Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó Trong đoạn mã trên, trước tiên chúng tôi đã nhập mô-đun 1. Biến 5 lưu trữ chuỗi đầu vào của chúng tôi sẽ được mã hóa. Chúng tôi chuyển đổi nó thành một đối tượng giống như byte bằng cách sử dụng phương thức 6 của chuỗi và lưu trữ nó trong 7. Sau đó, chúng tôi mã hóa Base64 7 và lưu kết quả vào 9 bằng phương pháp 30. Cuối cùng, chúng tôi nhận được biểu diễn chuỗi của chuyển đổi Base64 bằng cách giải mã 9 dưới dạng ASCIIGhi chú. Đảm bảo sử dụng cùng một định dạng mã hóa khi chuyển đổi từ chuỗi thành byte và từ byte thành chuỗi. Điều này ngăn ngừa tham nhũng dữ liệu Chạy tệp này sẽ cung cấp đầu ra sau 6Bây giờ hãy xem cách chúng ta có thể giải mã chuỗi Base64 thành biểu diễn thô của nó Giải mã chuỗi bằng PythonGiải mã chuỗi Base64 về cơ bản là đảo ngược quá trình mã hóa. Chúng tôi giải mã chuỗi Base64 thành byte dữ liệu chưa được mã hóa. Sau đó, chúng tôi chuyển đổi đối tượng giống như byte thành một chuỗi Trong một tệp mới có tên là 32, hãy viết đoạn mã sau 8Một lần nữa, chúng ta cần nhập mô-đun 1. Sau đó, chúng tôi mã hóa tin nhắn của mình thành một đối tượng giống như byte với 34. Chúng tôi tiếp tục bằng cách gọi phương thức 35 để giải mã 9 thành biến 7 của chúng tôi. Cuối cùng, chúng tôi giải mã 7 thành một đối tượng chuỗi 5, để con người có thể đọc đượcChạy tệp này để xem đầu ra sau 6Bây giờ chúng ta có thể mã hóa và giải mã dữ liệu chuỗi, hãy thử mã hóa dữ liệu nhị phân Mã hóa dữ liệu nhị phân bằng PythonNhư chúng tôi đã đề cập trước đây, mã hóa Base64 chủ yếu được sử dụng để biểu thị dữ liệu nhị phân dưới dạng văn bản. Trong Python, chúng tôi cần đọc tệp nhị phân và Base64 mã hóa các byte của nó để chúng tôi có thể tạo chuỗi được mã hóa của nó Hãy xem cách chúng ta có thể mã hóa hình ảnh này Tạo một tệp mới 70 và thêm vào như sau 8Hãy xem lại đoạn mã trên. Chúng tôi mở tệp bằng cách sử dụng 71. Lưu ý cách chúng tôi chuyển đối số 72 cùng với đường dẫn tệp - điều này cho Python biết rằng chúng tôi đang đọc tệp nhị phân. Nếu không sử dụng 72, Python sẽ cho rằng chúng ta đang đọc một tệp văn bảnSau đó chúng ta sử dụng phương thức 74 để lấy tất cả dữ liệu trong tệp vào biến 75. Tương tự như cách chúng tôi xử lý các chuỗi, chúng tôi Base64 đã mã hóa các byte bằng 30 và sau đó sử dụng 77 trên 78 để lấy dữ liệu được mã hóa Base64 bằng các ký tự mà con người có thể đọc đượcThực thi mã sẽ tạo ra đầu ra tương tự như 7Đầu ra của bạn có thể khác nhau tùy thuộc vào hình ảnh bạn đã chọn để mã hóa Bây giờ chúng ta đã biết cách mã hóa dữ liệu nhị phân Bas64 trong Python, hãy chuyển sang giải mã dữ liệu nhị phân Base64 Giải mã dữ liệu nhị phân với PythonMã nhị phân giải mã Base64 tương tự như dữ liệu văn bản giải mã Base64. Sự khác biệt chính là sau khi chúng tôi giải mã chuỗi Base64, chúng tôi lưu dữ liệu dưới dạng tệp nhị phân thay vì chuỗi Hãy xem cách giải mã dữ liệu nhị phân Base64 trong thực tế bằng cách tạo một tệp mới có tên là 79. Nhập mã sau vào tệp Python 0Trong đoạn mã trên, trước tiên chúng tôi chuyển đổi dữ liệu chuỗi Base64 của mình thành một đối tượng giống như byte có thể được giải mã. Khi bạn giải mã tệp nhị phân base64, bạn phải biết loại dữ liệu đang được giải mã. Ví dụ: dữ liệu này chỉ hợp lệ dưới dạng tệp PNG chứ không phải tệp MP3 vì nó mã hóa hình ảnh Khi tệp đích được mở, chúng tôi Base64 giải mã dữ liệu bằng 60, một phương pháp khác với 35 được sử dụng với các chuỗi. Phương pháp này nên được sử dụng để giải mã dữ liệu nhị phân. Cuối cùng, chúng tôi ghi dữ liệu đã giải mã vào một tệpTrong cùng thư mục mà bạn đã thực thi 79, bây giờ bạn sẽ thấy một tệp 63 mới chứa ảnh gốc đã được mã hóa trước đóSự kết luậnMã hóa Base64 là một kỹ thuật phổ biến để chuyển đổi dữ liệu ở các định dạng nhị phân khác nhau thành một chuỗi ký tự ASCII. Điều này hữu ích khi truyền dữ liệu đến mạng hoặc ứng dụng không thể xử lý dữ liệu nhị phân thô nhưng sẽ dễ dàng xử lý văn bản Làm cách nào để giải mã dữ liệu trong Python?decode() là một phương thức được chỉ định trong Chuỗi trong Python 2. Phương thức này được sử dụng để chuyển đổi từ một lược đồ mã hóa, trong đó chuỗi đối số được mã hóa thành lược đồ mã hóa mong muốn. Điều này hoạt động ngược lại với mã hóa. Nó chấp nhận mã hóa của chuỗi mã hóa để giải mã nó và trả về chuỗi gốc.
Làm cách nào để đọc một tệp trong Python?Để đọc một tệp văn bản bằng Python, bạn làm theo các bước sau. . Đầu tiên, mở một tệp văn bản để đọc bằng hàm open() Thứ hai, đọc văn bản từ tệp văn bản bằng phương thức tệp read() , readline() hoặc readlines() của đối tượng tệp Thứ ba, đóng tệp bằng phương thức đóng tệp () Mã hóa () trong Python là gì?Phương thức encode() mã hóa chuỗi, sử dụng mã hóa đã chỉ định . Nếu không có mã hóa nào được chỉ định, UTF-8 sẽ được sử dụng.
Giải mã một tập tin là gì?Trong máy tính, mã hóa là quá trình đưa một chuỗi ký tự (chữ cái, số, dấu chấm câu và một số ký hiệu) vào một định dạng chuyên biệt để truyền hoặc lưu trữ hiệu quả. Giải mã là quá trình ngược lại -- việc chuyển đổi định dạng được mã hóa trở lại chuỗi ký tự ban đầu . |