国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 標準類庫-因特網(wǎng)數(shù)據(jù)處理之Base64數(shù)據(jù)編碼

這篇具有很好參考價值的文章主要介紹了Python 標準類庫-因特網(wǎng)數(shù)據(jù)處理之Base64數(shù)據(jù)編碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

該模塊提供將二進制數(shù)據(jù)編碼為可打印ASCII字符并將這種編碼解碼回二進制數(shù)據(jù)的功能。它為RFC 3548中指定的編碼提供編碼和解碼功能。定義了Base16、Base32和Base64算法,以及事實上的標準Ascii85和Base85編碼。

RFC 3548 編碼適用于對二進制數(shù)據(jù)進行編碼,以便可以安全地通過電子郵件發(fā)送,用作URL的一部分,或作為HTTP POST請求的一部分。編碼算法與uuencode程序不同。

該模塊提供了兩個接口?,F(xiàn)代接口支持將字節(jié)類對象(bytes-like-objects)編碼為ASCII字節(jié),并將字節(jié)類對象或者包含ASCII的字符串轉為字節(jié)。支持 RFC 3548 中定義的所有base64字母表。

遺留接口不支持從字符串解碼,但它提供了與文件類對象之間的編碼和解碼功能。它只支持Base64標準字母表,并根據(jù)RFC 2045每76個字符添加換行符。

Python 3.3版本中變更:現(xiàn)代接口的解碼功能所接受只有ASCII的Unicode字符串。

Python 3.4版本中變更:該模塊中的所有編碼和解碼功能所接受任何字節(jié)類對象。增加了Ascii85/Base85支持。

現(xiàn)代接口

  • base64.b64encode(s, altchars=None)

    使用Base64對字節(jié)類對象 s進行編碼,并返回編碼后的字節(jié)。

    altchars 可選參數(shù),必須是長度至少為2的字節(jié)類對象(多余的字符會被忽略),參數(shù)中給定字符按序分別用于替換編碼后的字符集中的+/,等價于使用base64.urlsafe_b64encode(s) 。這允許應用程序生成例如URL或文件系統(tǒng)安全的Base64字符串。默認值為None,使用標準的Base64字母表。

  • base64.b64decode(s, altchars=None, validate=False)

    解碼Base64編碼的字節(jié)類對象或ASCII字符串 s,并返回解碼后的字節(jié)。

    altchars 可選參數(shù),必須是字節(jié)類對象或長度至少為2的ASCII字符串(多余的字符會被忽略),按序分別用于替換解碼前s中與+, /的替代字符為+/,等價于base64.urlsafe_b64decode(s) 。如果未正確提供 s 值,將引發(fā)binascii.Error異常。

    validate 如果為False(默認值),則在填充檢查前,將丟棄既不在標準 Base64 字母表之中也不在備用字母表中的字符。如果為True,這些非base64字符將導致binascii.Error。

  • base64.standard_b64encode(s)

    使用標準Base64字母表對字節(jié)類對象 s 進行編碼,并返回編碼后的字節(jié)

  • base64.standard_b64decode(s)

    使用標準Base64字母表對字節(jié)類對象 s 進行解碼,并返回解碼后的字節(jié)

  • base64.urlsafe_b64encode(s)

    使用 URL 與文件系統(tǒng)安全的字母表編碼字節(jié)類對象s,使用 - 以及 _ 分別代替標準 Base64 字母表中的 +/。返回編碼后的字節(jié)。結果中可能包含 =。

  • base64.urlsafe_b64decode(s)

    使用 URL 與文件系統(tǒng)安全的字母表解碼字節(jié)類對象 s,使用 - 以及 _ 分別代替標準 Base64 字母表中的 +/。返回解碼后的字節(jié)。

  • 查看參考官方文檔,獲取更多現(xiàn)代接口

示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import base64

str = 'param1=a>2&url=http://www.example.com/?type=1'
byte_obj = str.encode()
# print(byte_obj) # 輸出:b'param1=a>2&url=http://www.example.com/?type=1'
print(base64.b64encode(byte_obj))
#輸出:b'cGFyYW0xPWE+MiZ1cmw9aHR0cDovL3d3dy5leGFtcGxlLmNvbS8/dHlwZT0x'

encoded_obj = base64.b64encode(byte_obj, altchars=b'-_')
print(encoded_obj)
#輸出:b'cGFyYW0xPWE-MiZ1cmw9aHR0cDovL3d3dy5leGFtcGxlLmNvbS8_dHlwZT0x'

print(base64.b64decode(encoded_obj, altchars=b'-_'))
#輸出:b'param1=a>2&url=http://www.example.com/?type=1'
#print(base64.b64decode(encoded_obj))
#報錯 binascii.Error: Incorrect padding

print(base64.b64decode(str)) # 輸出:b'\xa5\xaa\xda\x9bV\xb6\xba\xb9'


str2 = 'hello Mr授客'
byte_obj2 = str2.encode('utf-8')
encoded_obj2 = base64.standard_b64encode(byte_obj2)
print(encoded_obj2) # 輸出:b'aGVsbG8gTXLmjojlrqI='
print(base64.standard_b64decode(encoded_obj2).decode('utf-8')) # 輸出:hello Mr授客


encoded_obj3 = base64.urlsafe_b64encode(byte_obj)
print(encoded_obj3)
#輸出:b'cGFyYW0xPWE-MiZ1cmw9aHR0cDovL3d3dy5leGFtcGxlLmNvbS8_dHlwZT0x'

print(base64.urlsafe_b64decode(encoded_obj3))
#輸出:b'param1=a>2&url=http://www.example.com/?type=1'

歷史接口

  • base64.decode(input, output)

    解碼二進制input文件的內容,并將生成的二進制數(shù)據(jù)寫入output文件。inputoutput必須是文件類對象。input將被讀取,直到input.readline()”返回一個空字節(jié)對象。

  • base64.decodebytes(s)

    解碼字節(jié)類型對象s,s必須包含一行或多行base64編碼的數(shù)據(jù),并返回解碼后的字節(jié)。3.1版新增。

  • base64.decodestring(s)

    decodebytes()的別名,3.1版本中廢棄。

  • base64.encode(input, output)

    對二進制input文件的內容進行編碼,并將生成的base64編碼數(shù)據(jù)寫入output文件。inputoutput必須是文件類對象。input將被讀取,直到input.read()返回一個空字節(jié)對象。base64.encode()output的每76個字節(jié)后插入一個換行符(b'\n'),并確保output始終以換行結束,如RFC 2045 所示(MIME)。

  • base64.encodebytes(s)

    對可以包含任意二進制數(shù)據(jù)的字節(jié)類對象 s 進行編碼,并返回包含base64編碼的字節(jié)數(shù)據(jù)。base64.encode()在輸出的每76個字節(jié)后插入一個換行符(b'\n'),并確保輸出始終以換行結束。

    版本3.1中新增

  • base64.encodestring(s)

    encodebytes()別名,版本3.1中廢棄。文章來源地址http://www.zghlxwxcb.cn/news/detail-461951.html

示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import base64

# 注意:必須以二進制文件打開、寫文件,否則會報錯
with open('./input.txt', 'rb') as input:
    with open('output.txt', 'wb') as output:
        base64.encode(input, output)
        
base64_byte_data = b'cGFyYW0xPWE+MiZ1cmw9aHR0cDovL3d3dy5leGFtcGxlLmNvbS8/dHlwZT0x'
print(base64.decodebytes(base64_byte_data))
#輸出:b'param1=a>2&url=http://www.example.com/?type=1'

print(base64.encodebytes(b'param1=a>2&url=http://www.example.com/?type=1'))
#輸出:b'cGFyYW0xPWE+MiZ1cmw9aHR0cDovL3d3dy5leGFtcGxlLmNvbS8/dHlwZT0x\n'

到了這里,關于Python 標準類庫-因特網(wǎng)數(shù)據(jù)處理之Base64數(shù)據(jù)編碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 5.3.3 因特網(wǎng)的路由協(xié)議(三)OSPF協(xié)議

    5.3.3 因特網(wǎng)的路由協(xié)議(三)OSPF協(xié)議

    5.3.3 因特網(wǎng)的路由協(xié)議(三)OSPF協(xié)議 前面我們學習了基于距離向量算法的路由信息協(xié)議RIP(5.3.2 因特網(wǎng)的路由協(xié)議(二)基于距離向量算法的RIP協(xié)議),為了克服RIP協(xié)議的局限性于是就有了新的內部網(wǎng)關協(xié)議OSPF協(xié)議,OSPF是Open Shortest Path First的縮寫,又被成為開放式最短路徑

    2024年02月09日
    瀏覽(16)
  • 【MOOC 測驗】第1章 計算機網(wǎng)絡和因特網(wǎng)

    1、主機或端系統(tǒng)通過( ? )接入因特網(wǎng)。 A. ISP B. 調制解調器 C. 交換機 D. 路由器 P21:端系統(tǒng)(PC、智能手機、Web 服務器、電子郵件服務器等)經(jīng)過一個接入 ISP 與因特網(wǎng)相連。 2、?主機一般被劃分為兩類:客戶和 ( ? ) 。 A. 端系統(tǒng) B. 大型主機 C. 數(shù)據(jù)中心 D. 服務器 3、

    2024年02月11日
    瀏覽(14)
  • 【MOOC 作業(yè)】第1章 計算機網(wǎng)絡和因特網(wǎng)

    不是標答也不是參考答案 僅從個人理解出發(fā)去做題 1、(20分) ?試比較分組交換和電路交換的主要優(yōu)缺點。 電路交換: 特點:在端系統(tǒng)間通信期間,預留了端系統(tǒng)間沿路徑通信需要的資源。 優(yōu)點:發(fā)送方可以以恒定的速率向接收方發(fā)送數(shù)據(jù)。 缺點:創(chuàng)建端到端電路和預留端

    2024年02月11日
    瀏覽(19)
  • 【網(wǎng)絡奇遇記】我和因特網(wǎng)的初相遇2 —— 三種交換方式

    【網(wǎng)絡奇遇記】我和因特網(wǎng)的初相遇2 —— 三種交換方式

    ??個人主頁: 聆風吟 ??系列專欄: 網(wǎng)絡奇遇記、數(shù)據(jù)結構 ??少年有夢不應止于心動,更要付諸行動。 ????網(wǎng)絡的核心部分由大量異構型網(wǎng)絡和連接這些網(wǎng)絡的路由器構成,為其邊緣部分提供連通性和數(shù)據(jù)交換等服務。在核心部分起特殊作用的是 路由器 ,它是一種專

    2024年02月05日
    瀏覽(19)
  • 【計算機網(wǎng)絡 - 自頂向下方法】計算機網(wǎng)絡和因特網(wǎng)

    【計算機網(wǎng)絡 - 自頂向下方法】計算機網(wǎng)絡和因特網(wǎng)

    1. 什么是Internet 1.1 因特網(wǎng)的具體構成 終端: 也稱主機(Host)或端系統(tǒng)(End system),運行應用程序(智能網(wǎng)約汽車、智能家電)。 通信鏈路: 光纖,銅線,電磁波。主要指標為傳輸速率也稱帶寬(Bandwidth),可分為有線鏈路和無線鏈路。 交換設備: 轉發(fā)分組(Packet),有

    2024年02月07日
    瀏覽(23)
  • mininet虛擬網(wǎng)絡中的主機與宿主Ubuntu及因特網(wǎng)互通實現(xiàn)

    mininet虛擬網(wǎng)絡中的主機與宿主Ubuntu及因特網(wǎng)互通實現(xiàn)

    環(huán)境: Win10(物理機),Vmware workstation ,Ubuntu(vm中的虛擬機),mininet 構建的虛擬網(wǎng)絡環(huán)境說明: 在一win10的物理機中安裝了vm平臺,在vm中加載了一ubuntun系統(tǒng),在改ubuntu系統(tǒng)中安裝了mininet。 目標: 通過mininet 構建虛擬網(wǎng)絡環(huán)境(使用python代碼構建一個交換機,一個控制器

    2024年03月10日
    瀏覽(46)
  • 5.3.2 因特網(wǎng)的路由協(xié)議(二)基于距離向量算法的RIP協(xié)議

    5.3.2 因特網(wǎng)的路由協(xié)議(二)基于距離向量算法的RIP協(xié)議

    5.3.2 因特網(wǎng)的路由協(xié)議(二)基于距離向量算法的RIP協(xié)議 一、RIP協(xié)議概念 RIP是Routing Information Protocol縮寫,又稱為路由信息協(xié)議,是最先得到應用的內部網(wǎng)關協(xié)議,RIP作為一個常在小型互聯(lián)網(wǎng)中使用的路由信息協(xié)議,它是依據(jù) 跳數(shù) 來作為度量值進行路由選擇,這里的跳數(shù)可

    2024年02月09日
    瀏覽(20)
  • 【網(wǎng)絡奇遇記】我和因特網(wǎng)的初相遇3 —— 網(wǎng)絡的體系結構篇

    【網(wǎng)絡奇遇記】我和因特網(wǎng)的初相遇3 —— 網(wǎng)絡的體系結構篇

    ??個人主頁: 聆風吟 ??系列專欄: 網(wǎng)絡奇遇記、數(shù)據(jù)結構 ??少年有夢不應止于心動,更要付諸行動。 ????為了使不同體系結構的計算機網(wǎng)絡都能互連起來,國際標準化組織(簡稱:ISO)于1977年成立了專門機構研究該問題。不久,它們提出了一個使全世界各種計算機

    2024年02月04日
    瀏覽(19)
  • 【計算機網(wǎng)絡 01】說在前面 信息服務 因特網(wǎng) ISP RFC技術文檔 邊緣與核心 交換方式 定義與分類 網(wǎng)絡性能指標 計算機網(wǎng)絡體系結構 章節(jié)小結

    【計算機網(wǎng)絡 01】說在前面 信息服務 因特網(wǎng) ISP RFC技術文檔 邊緣與核心 交換方式 定義與分類 網(wǎng)絡性能指標 計算機網(wǎng)絡體系結構 章節(jié)小結

    說在前面 本博客專欄都是基于B站上的湖科大計算機網(wǎng)絡課程的課程筆記,主要是由于我發(fā)現(xiàn)無法從課程網(wǎng)站獲得清晰PDF作為復習資料,所以制作此筆記同時也方便其他同學復習回顧,并且有少量補充參考 https://www.jianshu.com/u/5807cd8caf1d 同學的筆記 1.1 計算機網(wǎng)絡 信息時代作用

    2024年02月16日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包