2016-12-26 7 views
0

私は、要求のヘッダに追加するトークンを作成するためにpyDesを使用します(私はrequestsライブラリを使用します)。バイトが操作されていることを理解していません

{'token': pyDes.triple_des(auth_secret_key).encrypt(auth_message, padmode=2)}

token's値の出力は、b')\x8d\xa85\xe0;F\x81\xaeL3d\x86\x9eF\xf7'です。このキーと値のペアをリクエストヘッダーに追加します。サーバー側では、要求のヘッダーを確認すると、この値はb')\xc2\x8d\xc2\xa85\xc3\xa0;F\xc2\x81\xc2\xaeL3d\xc2\x86\xc2\x9eF\xc3\xb7'に変更されます。 \で区切られたバイトの間にxc2があることがわかりました。理由は何ですか?

+1

インターネット上での生のバイナリデータの処理は、しばしば問題となります。送信する前にデータをbase64形式にエンコードし、受信時にデコードしてください。 –

+0

@AlexHall sure、tnx – Juggernaut

答えて

0

トークンをbase64にエンコードすると問題が解決しました。

import base64 
base64.b64encode(bytes(token, encoding='utf-8')) 
関連する問題