json模塊python
簡介算法
全稱"JavaScript Object Notation" (JavaScript對象表示法)它是一種基於文本,獨立於語言的輕量級數據交換格式json
以易於讓人閱讀的文字爲基礎,用來傳輸由屬性值或者序列性的值組成的數據對象(鍵值對)數組
特色編碼
輕量級的文本數據交換格式加密
易於人類閱讀和編寫,同時也易於機器解析和生成url
Web世界當中最理想的數據交換格式spa
語法規則code
數據由鍵值對組成對象
鍵值對由逗號分隔
大括號裏保存對象
中括號裏保存數組(Pyton中的的列表或元組)
字符串必須用雙引號
API
json.dumps(obj) 將python數據轉化爲json indent 實現縮進,ensure_ascii 是否用ascii解析
json.loads(s) 將json數據轉換爲python的數據
json.dump(obj, fp) 轉換爲json並保存到文件中
json.load(fp) 從文件中讀取json,並轉化爲python數據
hashlib模塊
數據加密概念
對稱加密:數據加密解密使用相同的密鑰
非對稱加密:加密和解密用兩把不一樣的密鑰,公鑰用於加密數據,私鑰用於解密數據
單向加密:只能加密數據,而不能解密數據
特色
定長輸出:不管輸入的原始數據有多長,結果長度是相同的
抗修改性:輸入的微小改變,哪怕只有一個字符,也會引發結果的巨大改變
強碰撞性:很難找到兩段內容不一樣的數據,使他們產生的hash值一致,幾乎不可能
API
主要使用md5 其它:sha系列、blake系列
查詢全部的哈希算法 hashlib.algorithms_guaranteed
hashlib.new(算法名, data=b") 生成一個使用該算法的Hash對象,data爲bytes類型
hashlib.算法名(data=b") 生成一個使用該算法的Hash對象,data爲bytes類型
Hash對象.digest() 返回Hash算法計算獲得的值(bytes類型)
Hash對象.hexdigest() 返回Hash算法計算獲得的值(str類型)
Hash對象.update(arg=None) 更新Hash對象
base64模塊
簡介
base64是一種用64個字符來表示任意二進制數據的方法(將二進制數據編碼成ASCII字符)
使用了A-Z、a-z、0-九、 + 、 / 這64個字符
特色
用來將非ASCII字符的數據轉換成ASCII字符的一種方法
經常使用於對URL的編碼
能夠將不可打印的二進制數據轉化爲可打印的字符串
API
base64.b64encode(s) 對二進制數據進行base64編碼
base64.b64decode(s) 對經過base64編碼的數據進行解碼
Base64編碼後的數據可能會含有 + / 兩個符號,若是編碼後的數據用於URL或文件的系統路徑中,就可能致使Bug,因此base模塊提供了專門編碼url的方法
base64.urlsafe_ b64encode(s) 對URL進行base64編碼
base64.urlsafe_ b64decode(s) 對URL進行base64解碼