Modul ini berisi sejumlah metode untuk mengonversi antara biner dan berbagai representasi biner yang dikodekan ASCII. Biasanya, Anda tidak akan menggunakan fungsi ini secara langsung tetapi menggunakan modul pembungkus seperti atau sebagai gantinya. Modul berisi fungsi tingkat rendah yang ditulis dalam C untuk kecepatan lebih tinggi yang digunakan oleh modul tingkat tinggi
Catatan
a2b_* fungsi menerima string Unicode yang hanya berisi karakter ASCII. Fungsi lain hanya menerima (seperti , dan objek lain yang mendukung protokol buffer)
Berubah di versi 3. 3. String unicode khusus ASCII kini diterima oleh fungsi a2b_*.
Modul ini mendefinisikan fungsi-fungsi berikut
binascii. a2b_uu(string)Mengkonversi satu baris data uuencoded kembali ke biner dan mengembalikan data biner. Baris biasanya berisi 45 byte (biner), kecuali untuk baris terakhir. Data baris dapat diikuti oleh spasi putih
binascii. b2a_uu(data , * , backtick=Salah)Mengonversi data biner menjadi baris karakter ASCII, nilai kembaliannya adalah baris yang dikonversi, termasuk karakter baris baru. Panjang data harus maksimal 45. Jika backtick benar, nol diwakili oleh >>> import binascii >>> binascii.b2a_hex(b'\xb9\x01\xef') b'b901ef' >>> binascii.hexlify(b'\xb9\x01\xef', '-') b'b9-01-ef' >>> binascii.b2a_hex(b'\xb9\x01\xef', b'_', 2) b'b9_01ef' >>> binascii.b2a_hex(b'\xb9\x01\xef', b' ', -2) b'b901 ef' 2 bukan spasi
Berubah di versi 3. 7. Menambahkan parameter backtick.
binascii. a2b_base64(string , / , * , strict_mode=Salah)Konversikan blok data base64 kembali ke biner dan kembalikan data biner. Lebih dari satu baris dapat dilewati pada satu waktu
Jika strict_mode benar, hanya data base64 yang valid yang akan dikonversi. Data base64 yang tidak valid akan muncul
Basis yang valid64Sesuai dengan RFC 3548
Hanya berisi karakter dari alfabet base64
Tidak mengandung kelebihan data setelah padding (termasuk kelebihan padding, baris baru, dll. )
Tidak dimulai dengan padding
Berubah di versi 3. 11. Menambahkan parameter strict_mode.
binascii. b2a_base64(data , * , baris baru=Benar)Mengonversi data biner ke baris karakter ASCII dalam pengkodean base64. Nilai yang dikembalikan adalah baris yang dikonversi, termasuk karakter baris baru jika baris baru benar. Output dari fungsi ini sesuai dengan RFC 3548
Berubah di versi 3. 6. Menambahkan parameter baris baru.
binascii. a2b_qp(data , tajuk=Salah)Ubah blok data yang dapat dicetak dengan kutipan kembali ke biner dan kembalikan data biner. Lebih dari satu baris dapat dilewati pada satu waktu. Jika header argumen opsional ada dan benar, garis bawah akan diterjemahkan sebagai spasi
binascii. b2a_qp(data , quotetabs=Salah , istext=Benar , tajuk=Salah)Mengonversi data biner menjadi satu baris karakter ASCII dalam penyandian yang dapat dicetak dengan tanda kutip. Nilai yang dikembalikan adalah baris yang dikonversi. Jika kutipan argumen opsional ada dan benar, semua tab dan spasi akan dikodekan. Jika argumen opsional istext ada dan benar, baris baru tidak dikodekan tetapi spasi kosong akan dikodekan. Jika header argumen opsional ada dan benar, spasi akan dikodekan sebagai garis bawah per RFC 1522. Jika header argumen opsional ada dan salah, karakter baris baru juga akan dikodekan;
binascii. crc_hqx(data , nilai)Hitung nilai data CRC 16-bit, dimulai dengan nilai sebagai CRC awal, dan kembalikan hasilnya. Ini menggunakan polinomial CRC-CCITT x16 + x12 + x5 + 1, sering direpresentasikan sebagai 0x1021. CRC ini digunakan dalam format binhex4
binascii. crc32(data[ , nilai])Hitung CRC-32, checksum data 32-bit yang tidak ditandatangani, dimulai dengan nilai CRC awal. CRC awal default adalah nol. Algoritme ini konsisten dengan checksum file ZIP. Karena algoritme dirancang untuk digunakan sebagai algoritme checksum, algoritme ini tidak cocok untuk digunakan sebagai algoritme hash umum. Gunakan sebagai berikut
print(binascii.crc32(b"hello world")) # Or, in two pieces: crc = binascii.crc32(b"hello") crc = binascii.crc32(b" world", crc) print('crc32 = {:#010x}'.format(crc)) _
Berubah di versi 3. 0. Hasilnya selalu tanpa tanda tangan.
Mengembalikan representasi heksadesimal dari data biner. Setiap byte data diubah menjadi representasi hex 2 digit yang sesuai. Oleh karena itu, objek bytes yang dikembalikan dua kali lebih panjang dari panjang data
Fungsi serupa (tetapi mengembalikan string teks) juga dapat diakses dengan mudah menggunakan metode ini
Jika sep ditentukan, itu harus berupa objek str atau byte karakter tunggal. Ini akan dimasukkan ke dalam output setelah setiap byte input bytes_per_sep. Penempatan pemisah dihitung dari ujung kanan output secara default, jika Anda ingin menghitung dari kiri, berikan nilai bytes_per_sep negatif
>>> import binascii >>> binascii.b2a_hex(b'\xb9\x01\xef') b'b901ef' >>> binascii.hexlify(b'\xb9\x01\xef', '-') b'b9-01-ef' >>> binascii.b2a_hex(b'\xb9\x01\xef', b'_', 2) b'b9_01ef' >>> binascii.b2a_hex(b'\xb9\x01\xef', b' ', -2) b'b901 ef'
Berubah di versi 3. 8. Parameter sep dan bytes_per_sep ditambahkan.
binascii. a2b_hex(hexstr)binascii. unhexlify(hexstr)Mengembalikan data biner yang diwakili oleh hexstr string heksadesimal. Fungsi ini merupakan kebalikan dari. hexstr harus berisi digit heksadesimal dalam jumlah genap (yang bisa berupa huruf besar atau kecil), jika tidak, pengecualian akan dimunculkan
Fungsi serupa (hanya menerima argumen string teks, tetapi lebih liberal terhadap spasi) juga dapat diakses menggunakan metode kelas
pengecualian binascii. KesalahanPengecualian muncul karena kesalahan. Ini biasanya kesalahan pemrograman
pengecualian binascii. Tidak lengkapPengecualian muncul pada data yang tidak lengkap. Ini biasanya bukan kesalahan pemrograman, tetapi dapat ditangani dengan membaca lebih banyak data dan mencoba lagi