晚上總算把前面哪個平台的加密算法搞定了,他的解釋文檔寫的太精簡了,而且他的加密代碼肯定是錯的。
好在多次嘗試總算試成功了,寫了5個相對最麻煩的接口,取消訂單,提交訂單什么的,功能都實現了,發現調試自己寫接口還挺麻煩的,那種寫好的接口平台就方便了,復制粘貼就可以了。
這個base64還是較好理解的,一個普通的英文字母一般試1個字節8個bit,三個字節24個bit,base64就是把三個字節轉換成4個6比特位的字節。它有一張自己的字符對照表,不同的數字代表不同的字符。
這個對照圖網上有很多。
都是字節碼,為什么要使用base64傳輸:
因為早起的一些傳輸協議,例如傳輸郵件的SMTP協議,只能傳輸可打印的ASCII字符。導致原本8Bit的字節碼(范圍0-255)超過了可用的范圍。比如當郵件傳輸圖片資源的時候,某一個Byte值是10111011B,對應十進制187不屬於ASCII碼范圍,因此無法被傳輸。這個時候,Base64編碼應用而生了,它利用6bit字符表達了原本的8bit字符。Base64可以把原本ASCII碼的控制字符甚至ASCII碼之外的字符都轉換成可打印的6big字符。
還可以用在:
知道了,為什么要用,那下面我直接上代碼,告訴如何用。
import base64 s_b = '1234'.encode() b1 = base64.b64encode(s_b) # 直接上字節碼轉換 print(b1) print(base64.b64decode(b1).decode()) # 再通過解碼轉換回來,然后需要的化,可以繼續解碼出字符串。 sb1 = '123456'.encode() b2 = base64.b64encode(sb1) # 因為b64編碼轉換時,需要原來的是三個字符拆成4個,如過是原來的字符是 print(b2) #3的倍數顯示都是對應他自己的字母,如果不是缺幾個補幾個=號,最多補兩個。 '''由於標准的Base64編碼后可能出現字符+和/,在URL中就不能直接作為參數, 所以又有一種"url safe"的base64編碼,其實就是把字符+和/分別變成-和_:''' print('~' *100) print(base64.b64encode(b'i\xb7\x1d\xfb\xef\xff')) print(base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff')) print(base64.b64decode(b'abcd++//')) print(base64.urlsafe_b64decode(b'abcd--__')) '''這個很簡單,參考資料的鏈接里面講的更加仔細'''
昨天凌晨看了namedtuple一個很有意思的模塊,明天看能不能記錄寫一下,隨便把io模塊一起記錄下,前面的re還欠着,其實寫博客我覺的對我老年人的學習記憶加深真的蠻好的
base64我個人認為只能說是一種公開的轉換方式,但絕對補屬於加密方法,還有就是當你發現有字節碼最后跟着==的時候,可以想嘗試用base64解碼后,再通過utf8或者gbk解碼。
參考鏈接:
https://blog.csdn.net/wufaliang003/article/details/79573512
https://blog.csdn.net/wo541075754/article/details/81734770
https://www.liaoxuefeng.com/wiki/1016959663602400/1017684507717184