Chuyển base64 sang pdf python

Mô-đun này cung cấp các chức năng để mã hóa dữ liệu nhị phân thành các ký tự ASCII có thể in được và giải mã các mã hóa đó trở lại dữ liệu nhị phân. Nó cung cấp các chức năng mã hóa và giải mã cho các mã hóa được chỉ định trong RFC 4648, định nghĩa các thuật toán Base16, Base32 và Base64 cũng như cho các mã hóa Ascii85 và Base85 tiêu chuẩn thực tế

Mã hóa RFC 4648 phù hợp để mã hóa dữ liệu nhị phân để có thể gửi qua email một cách an toàn, được sử dụng như một phần của URL hoặc được đưa vào như một phần của yêu cầu HTTP POST. Thuật toán mã hóa không giống với chương trình uuencode

Có hai giao diện được cung cấp bởi mô-đun này. Giao diện hiện đại hỗ trợ mã hóa đối tượng dạng byte sang ASCII bytes và giải mã đối tượng dạng byte or strings containing ASCII to bytes. Both base-64 alphabets defined in RFC 4648 (normal, and URL- and filesystem-safe) are supported.

Giao diện kế thừa không hỗ trợ giải mã từ chuỗi, nhưng nó cung cấp chức năng mã hóa và giải mã đến và từ đối tượng tệp . Nó chỉ hỗ trợ bảng chữ cái tiêu chuẩn Base64 và nó thêm dòng mới cứ sau 76 ký tự theo RFC 2045. Lưu ý rằng nếu bạn đang tìm kiếm hỗ trợ RFC 2045, bạn có thể muốn xem gói email thay thế.

Đã thay đổi trong phiên bản 3. 3. Các chuỗi Unicode chỉ ASCII hiện được các chức năng giải mã của giao diện hiện đại chấp nhận.

Đã thay đổi trong phiên bản 3. 4. Mọi đối tượng giống như byte hiện được chấp nhận bởi tất cả các chức năng mã hóa và giải mã trong mô-đun này. Đã thêm hỗ trợ Ascii85/Base85.

Giao diện hiện đại cung cấp

base64. b64encode(s , altchars=Không có)

Mã hóa đối tượng byte bằng Base64 và trả về bytes đã mã hóa.

Các altchars tùy chọn phải là một đối tượng giống như byte có độ dài ít nhất là 2 (các ký tự bổ sung được bỏ qua) chỉ định một bảng chữ cái thay thế cho . Điều này cho phép một ứng dụng e. g. tạo URL hoặc chuỗi Base64 an toàn cho hệ thống tệp. Giá trị mặc định là None, sử dụng bảng chữ cái Base64 tiêu chuẩn.

base64. b64decode(s , altchars=Không có , xác thực=Sai)

Giải mã đối tượng giống byte bytes-like object được mã hóa Base64 hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc chuỗi ASCII s và trả về bytes đã giải mã.

Các altchars tùy chọn phải là một đối tượng giống như byte hoặc chuỗi ASCII có độ dài ít nhất là 2 (các ký tự bổ sung được bỏ qua) chỉ định phương án thay thế .

Một ngoại lệ bytes12 được đưa ra nếu s được đệm không chính xác

Nếu xác thực là bytes13 (mặc định), các ký tự không có trong bảng chữ cái cơ sở 64 bình thường cũng như bảng chữ cái thay thế sẽ bị loại bỏ trước khi kiểm tra phần đệm. Nếu xác thực là bytes14, thì các ký tự không phải bảng chữ cái này trong kết quả đầu vào sẽ là bytes12

Để biết thêm thông tin về kiểm tra base64 nghiêm ngặt, hãy xem bytes16

base64. mã_b64chuẩn(s)

Mã hóa đối tượng giống byte bằng cách sử dụng bảng chữ cái Base64 tiêu chuẩn và trả về bytes được mã hóa.

base64. standard_b64decode(s)

Giải mã đối tượng dạng byte hoặc chuỗi ASCII s bằng bảng chữ cái Base64 tiêu chuẩn và trả về bytes đã giải mã.

base64. urlsafe_b64encode(s)

Mã hóa đối tượng giống như byte bằng cách sử dụng bảng chữ cái an toàn cho hệ thống tệp và URL, thay thế cho bytes19 thay vì +bytes1 thay vì / . Kết quả vẫn có thể chứa bytes4.

base64. urlsafe_b64decode(s)

Giải mã đối tượng dạng byte hoặc chuỗi ASCII s bằng cách sử dụng bảng chữ cái an toàn cho hệ thống tệp và URL, thay thế cho bytes19 thay cho +bytes1 .

base64. b32encode(s)

Mã hóa đối tượng byte bằng Base32 và trả về bytes được mã hóa.

base64. b32decode(s , casefold=Sai , map01=Không có)

Giải mã đối tượng dạng byte hoặc chuỗi ASCII s và trả về bytes đã giải mã. hoặc mã ASCII được mã hóa Base32

casefold tùy chọn là cờ chỉ định liệu bảng chữ cái viết thường có được chấp nhận làm đầu vào hay không. Vì mục đích bảo mật, mặc định là bytes13

RFC 4648 cho phép ánh xạ tùy chọn chữ số 0 (không) thành chữ O (oh) và ánh xạ tùy chọn của chữ số 1 (một) thành chữ I (mắt) hoặc chữ L (el). Đối số tùy chọn map01 khi không phải là None, chỉ định chữ cái mà chữ số 1 sẽ được ánh xạ tới (khi map01 không phải là None, chữ số 0 luôn được ánh xạ tới chữ cái O). Vì mục đích bảo mật, mặc định là None, do đó 0 và 1 không được phép nhập vào

Một bytes12 được nâng lên nếu s được đệm không chính xác hoặc nếu có các ký tự không phải bảng chữ cái có trong đầu vào

base64. b32hexencode(s)

Tương tự như bytes7 nhưng sử dụng Bảng chữ cái Hex Mở rộng, như được định nghĩa trong RFC 4648

Mới trong phiên bản 3. 10

base64. b32hexdecode(s , casefold=Sai)

Tương tự như bytes8 nhưng sử dụng Bảng chữ cái Hex mở rộng, như được định nghĩa trong RFC 4648

Phiên bản này không cho phép ánh xạ chữ số 0 (không) với chữ O (oh) và chữ số 1 (một) với chữ I (mắt) hoặc chữ L (el), tất cả các ký tự này được bao gồm trong Bảng chữ cái Hex mở rộng

Mới trong phiên bản 3. 10

base64. b16encode(s)

Mã hóa đối tượng byte bằng Base16 và trả về bytes đã mã hóa.

base64. b16decode(s , casefold=Sai)

Giải mã mã hóa Base16 đối tượng giống như byte hoặc chuỗi ASCII s và trả về bytes đã giải mã.

casefold tùy chọn là cờ chỉ định liệu bảng chữ cái viết thường có được chấp nhận làm đầu vào hay không. Vì mục đích bảo mật, mặc định là bytes13

Một bytes12 được nâng lên nếu s được đệm không chính xác hoặc nếu có các ký tự không phải bảng chữ cái có trong đầu vào

base64. a85encode(b , * , foldspaces=False , wrapcol=0 , pad=Sai , adobe=Sai)

Mã hóa đối tượng dạng byte b bằng Ascii85 và trả về bytes đã mã hóa.

foldspaces là cờ tùy chọn sử dụng chuỗi ngắn đặc biệt 'y' thay vì 4 dấu cách liên tiếp (ASCII 0x20) như được hỗ trợ bởi 'btoa'. Tính năng này không được mã hóa Ascii85 “tiêu chuẩn” hỗ trợ

wrapcol kiểm soát xem đầu ra có được thêm ký tự dòng mới (email4) hay không. Nếu giá trị này khác 0, thì mỗi dòng đầu ra sẽ dài tối đa bằng bao nhiêu ký tự này

pad kiểm soát xem đầu vào có được đệm thành bội số của 4 trước khi mã hóa hay không. Lưu ý rằng việc triển khai email5 luôn đệm

adobe kiểm soát xem chuỗi byte được mã hóa có được đóng khung bằng email6 và email7 hay không, được triển khai Adobe sử dụng

Mới trong phiên bản 3. 4

base64. a85decode(b , * , không gian nếp gấp=Sai , adobe=Sai , ignorechars=b' \t\n\r\x0b')

Giải mã đối tượng dạng byte Ascii85 và trả về bytes đã giải mã. hoặc mã ASCII được mã hóa

foldspaces là một cờ chỉ định liệu chuỗi ngắn 'y' có được chấp nhận làm tốc ký cho 4 khoảng trắng liên tiếp hay không (ASCII 0x20). Tính năng này không được mã hóa Ascii85 “tiêu chuẩn” hỗ trợ

adobe controls whether the input sequence is in Adobe Ascii85 format (i.e. is framed with <~ and ~>).

ignorechars phải là một đối tượng giống như byte hoặc chuỗi ASCII chứa các ký tự để bỏ qua từ đầu vào. Điều này chỉ nên chứa các ký tự khoảng trắng và theo mặc định chứa tất cả các ký tự khoảng trắng trong ASCII.

Mới trong phiên bản 3. 4

base64. b85encode(b , pad=Sai)

Mã hóa đối tượng byte b bằng cách sử dụng base85 (như được sử dụng trong e. g. khác biệt nhị phân kiểu git) và trả lại mã hóa bytes.

Nếu pad là true, đầu vào được đệm bằng bytes0 để độ dài của nó là bội số của 4 byte trước khi mã hóa

Mới trong phiên bản 3. 4

base64. b85decode(b)

Giải mã đối tượng giống như byte hoặc chuỗi ASCII b và trả về bytes đã giải mã. Phần đệm được loại bỏ hoàn toàn, nếu cần. được mã hóa base85

Mới trong phiên bản 3. 4

Giao diện kế thừa

base64. giải mã(đầu vào , đầu ra)

Giải mã nội dung của tệp đầu vào nhị phân và ghi dữ liệu nhị phân thu được vào tệp đầu ra. đầu vào và đầu ra phải là đối tượng tệp . đầu vào sẽ được đọc cho đến khi bytes2 trả về một đối tượng byte trống.

base64. byte giải mã(s)

Giải mã đối tượng byte , phải chứa một hoặc nhiều dòng dữ liệu được mã hóa base64 và trả về bytes đã giải mã.

Mới trong phiên bản 3. 1

base64. mã hóa(đầu vào , đầu ra)

Mã hóa nội dung của tệp đầu vào nhị phân và ghi dữ liệu được mã hóa base64 vào tệp đầu ra. đầu vào và đầu ra phải là đối tượng tệp . đầu vào sẽ được đọc cho đến khi bytes4 trả về một đối tượng byte trống. bytes5 chèn một ký tự xuống dòng (email4) sau mỗi 76 byte đầu ra, cũng như đảm bảo rằng đầu ra luôn kết thúc bằng một dòng mới, theo RFC 2045 (MIME).

base64. byte mã hóa(s)

Mã hóa đối tượng byte , có thể chứa dữ liệu nhị phân tùy ý và trả về bytes chứa dữ liệu được mã hóa base64, với các dòng mới .

Mới trong phiên bản 3. 1

Một ví dụ sử dụng mô-đun

>>> import base64
>>> encoded = base64.b64encode(b'data to be encoded')
>>> encoded
b'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
b'data to be encoded'

Cân nhắc về Bảo mật¶

Phần xem xét bảo mật mới đã được thêm vào RFC 4648 (phần 12);