亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中base64加密解密方法實例分析

 更新時間:2015年05月16日 16:24:58   作者:不吃皮蛋  
這篇文章主要介紹了python中base64加密解密方法,實例分析了base64加密解密的原理、用途與相關使用技巧,需要的朋友可以參考下

本文實例講述了python中base64加密解密方法。分享給大家供大家參考。具體分析如下:

一、base64

Base64是一種基于64個可打印字符來表示二進制數據的表示方法。由于2的6次方等于64,所以每6個比特為一個單元,對應某個可打印字符。三個字節(jié)有24個比特,對應于4個Base64單元,即3個字節(jié)需要用4個可打印字符來表示。它可用來作為電子郵件的傳輸編碼。在Base64中的可打印字符包括字母A-Z、a-z、數字0-9 ,這樣共有62個字符,此外兩個可打印符號在不同的系統(tǒng)中而不同。編碼后的數據比原始數據略長,為原來的4/3。

Base64常用于在通常處理文本數據的場合,表示、傳輸、存儲一些二進制數據(或不可打印的字符串)。包括MIME的email,email via MIME, 在XML中存儲復雜數據.

在郵件中的用途:

在MIME格式的電子郵件中,base64可以用來將binary的字節(jié)序列數據編碼成ASCII字符序列構成的文本。使用時,在傳輸編碼方式中指定base64。使用的字符包括大小寫字母各26個,加上10個數字,和加號“+”,斜杠“/”,一共64個字符,等號“=”用來作為后綴用途。

在URL中的用途:

標準的Base64并不適合直接放在URL里傳輸,因為URL編碼器會把標準Base64中的“/”和“+”字符變?yōu)樾稳纭?XX”的形式,而這些“%”號在存入數據庫時還需要再進行轉換,因為ANSI SQL中已將“%”號用作通配符。

為解決此問題,可采用一種用于URL的改進Base64編碼,它不在末尾填充'='號,并將標準Base64中的“+”和“/”分別改成了“*”和“-”,這樣就免去了在URL編解碼和數據庫存儲時所要作的轉換,避免了編碼信息長度在此過程中的增加,并統(tǒng)一了數據庫、表單等處對象標識符的格式。

另有一種用于正則表達式的改進Base64變種,它將“+”和“/”改成了“!”和“-”,因為“+”,“*”在正則表達式中都可能具有特殊含義。

二、python中使用

C:\Python27>python
Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import base64
>>> str = 'haha'
>>> base64.b64encode(str)
'aGFoYQ=='
>>> base64.b64decode('aGFoYQ==')
'haha'

三、其他的方法,這個比較重要

base64.b64encode(s[, altchars])
base64.b64decode(s[, altchars])
altchars為可選的參數,用來替換+和/的一個兩個長度的字符串。
base64.urlsafe_b64encode(s)
base64.urlsafe_b64decode(s)

此方法中用-代替了+,用_代替了/ ,這樣可以保證編碼后的字符串放在url里可以正常訪問

base64.b32encode(s)
base64.b32decode(s[, casefold[, map01]])
base64.b16encode(s)
base64.b16decode(s[, casefold])

希望本文所述對大家的Python程序設計有所幫助。

相關文章

  • Python?中?Selenium?的?send_keys()?函數用法小結

    Python?中?Selenium?的?send_keys()?函數用法小結

    send_keys() 是將數字、文本和符號等鍵盤輸入發(fā)送到應用程序的文本框的過程, send_keys() 是 WebDriver 的一部分,每個鍵盤輸入都會發(fā)送到此元素,這篇文章主要介紹了Python?中?Selenium?的?send_keys()?函數,需要的朋友可以參考下
    2023-11-11
  • Python 時間處理datetime實例

    Python 時間處理datetime實例

    Python Cook書中有很多章節(jié)都是針對某個庫的使用進行介紹或是通過組合多個函數實現(xiàn)一些復雜的功能。我這里直接跳過了上一章節(jié)中對于文件處理的一些章節(jié),直接進入對時間操作的章節(jié)。
    2008-09-09
  • GraphQL在Django中的使用教程

    GraphQL在Django中的使用教程

    這篇文章主要介紹了GraphQL在Django中的使用教程,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Pycharm運行程序時,控制臺輸出PyDev?console:starting問題

    Pycharm運行程序時,控制臺輸出PyDev?console:starting問題

    Pycharm運行程序時,控制臺輸出PyDev?console:starting問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python實現(xiàn)8個概率分布公式的方法詳解

    Python實現(xiàn)8個概率分布公式的方法詳解

    在本文中,我們將介紹一些常見的分布(均勻分布、高斯分布、對數正態(tài)分布等)并通過Python代碼進行可視化以直觀地顯示它們,感興趣的可以學習一下
    2022-05-05
  • 在jupyter notebook中使用pytorch的方法

    在jupyter notebook中使用pytorch的方法

    這篇文章主要介紹了在jupyter notebook中使用pytorch的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • python一行sql太長折成多行并且有多個參數的方法

    python一行sql太長折成多行并且有多個參數的方法

    今天小編就為大家分享一篇python一行sql太長折成多行并且有多個參數的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • PYQT5 vscode聯(lián)合操作qtdesigner的方法

    PYQT5 vscode聯(lián)合操作qtdesigner的方法

    這篇文章主要介紹了PYQT5 vscode聯(lián)合操作qtdesigner的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • python中validators庫的使用方法詳解

    python中validators庫的使用方法詳解

    這篇文章主要介紹了python中validators庫的使用方法詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • python3通過subprocess模塊調用腳本并和腳本交互的操作

    python3通過subprocess模塊調用腳本并和腳本交互的操作

    這篇文章主要介紹了python3通過subprocess模塊調用腳本并和腳本交互的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論