乙個base64引發的血案

2021-08-07 15:04:30 字數 582 閱讀 7383

結果發現header跟body之間多了乙個換行符('\r\n'),http協議預設header和body之間有乙個空行隔開,也就是乙個只含有\r\n的行,但是多了乙個\r\n,就會導致伺服器取body的時候從這個多出來的\r\n開始取content-length個字元,這樣body裡最後的兩個字元就被這個多出來的\r\n擠掉了

而通過觀察,這個原因是由於header的最後乙個欄位authorization: basic ehh4ehh4edp4ehh4ehh4後面多了乙個"\n"導致,

這個欄位的值是同事經過base64.encodestring("******:******")編碼後得到的字串,檢視了一下python的lib doc,發現這個函式預設返回乙個以"\n"結尾的字串,這就這個問題的根本原因,replace掉其中的\n,一切就都ok了

base64.encodestring返回的字串預設結尾帶"\n",而且產生的base64編碼字串每76個字元就會用"\n"隔開,所以最安全的方法不是strip去掉結尾的\n,而是用replace去掉其中所有的\n。為啥base64.ecodestring每76字元就換行,這個是mime協議的規定,用於email傳送,具體檢視mime協議吧

MD5引發的血案

在今天發現了乙個神奇的問題,原因是在移動端md5後,把資料傳給後台,後台對資料重新生成md5和移動端的md5做對比時發現md5不同,一開始對比資料,發現完全一致。之後經過不斷實驗,發現是編碼問題,在資料中有中文時問題就出現了。但是神奇的我們看到的中文並不是亂碼。這是為什麼呢?首先,讓我們看一下實驗圖...

乙個memset引發的血案

前幾天做了一道bst題,提交了幾次都是wa,今天抽空拿了出來仔細瞧瞧總算被我發現禍頭根源.總結原因還在於自己對memset不太了解,以前用對估計也是瞎貓撞見死耗子 memset的介紹 void memset void buffer,int ch,size t count buffer 指向某段記憶體...

乙個分號引發的「血案」

再多的表情也無法詮釋我現在的心情!a b for matrices 這是很水的一道題,然而卻整整折騰了我2個多小時。從晚上6點多開始,花了沒幾分鐘就把 敲好了,可是資料一測,竟然不對,然後就開始找問題,找了很久,我竟然都還沒看出問題在哪,越找心裡越不爽,這麼做明明對的呀,一執行怎麼就錯了呢?一直到了...