私はログファイルを処理するPythonを書いています。プログラムは、2つのパターンの間でbase64でエンコードされた文字列を復号化します。私はここで、「不正なパディングエラー」Pythonはログファイルから文字列をデコードします
を取得するコードを実行するたびに、これはベース85であるので、私のコード
import base64
import re
def find_between_r(s, first, last):
try:
start = s.rindex(first) + len(first)
end = s.rindex(last, start)
return s[start:end]
except ValueError:
return ""
text='192.168.1.23 - - [18/Jun/2015:12:16:12 +0200] "GET /admin/?action=membres&order=QVNDLChzZWxlY3QgKGNhc2UgZmllbGQoY29uY2F0KHN1YnN0cmluZyhiaW4oYXNjaWkoc3Vic3RyaW5nKHBhc3N3b3JkLDE3LDEpKSksMSwxKSxzdWJzdHJpbmcoYmluKGFzY2lpKHN1YnN0cmluZyhwYXNzd29yZCwxNywxKSkpLDIsMSkpLGNvbmNhdChjaGFyKDQ4KSxjaGFyKDQ4KSksY29uY2F0KGNoYXIoNDgpLGNoYXIoNDkpKSxjb25jYXQoY2hhcig0OSksY2hhcig0OCkpLGNvbmNhdChjaGFyKDQ5KSxjaGFyKDQ5KSkpd2hlbiAxIHRoZW4gVFJVRSB3aGVuIDIgdGhlbiBzbGVlcCgyKSB3aGVuIDMgdGhlbiBzbGVlcCg0KSB3aGVuIDQgdGhlbiBzbGVlcCg2KSBlbmQpIGZyb20gbWVtYnJlcyB3aGVyZSBpZD0xKQ%3D%3D HTTP/1.1" 200 1007 "-" "-"'
result = re.search('order=(.*) H', text)
t=result.group(1)
print(base64.b64decode(t))
#with open("26828869_ch13.txt","rt") as in_file:
# for line in in_file:
最初に他の部分のデコードを忘れましたか? –
** HOLY BLEEP **、なぜ部分的なSQLをGETパラメータに入れていますか? –
このエラーが何を意味するのか分かりませんが、re.search( 'order =(。*)H'、text) 'を' re.search( 'order =(。*) HTTP/1.1 '、テキスト) 'あなたのバージョンのものが間違ったブレークポイントをとったものです。 – MegaIng