寫一下base64字節碼轉換工具。


晚上總算把前面哪個平台的加密算法搞定了,他的解釋文檔寫的太精簡了,而且他的加密代碼肯定是錯的。

好在多次嘗試總算試成功了,寫了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字符。
還可以用在:

  • 垃圾消息傳播者用Base64來避過反垃圾郵件工具,因為那些工具通常都不會翻譯Base64的消息。
  • LDIF文件,Base64用作編碼字符串。

 

知道了,為什么要用,那下面我直接上代碼,告訴如何用。

 

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM