Python解码日志文件中的字符串
我正在编写Python来处理日志文件。该程序解密两个模式之间的base64编码字符串。每当我运行代码时,都会出现不正确的填充错误 这是我的密码Python解码日志文件中的字符串,python,base64,pattern-matching,string-decoding,Python,Base64,Pattern Matching,String Decoding,我正在编写Python来处理日志文件。该程序解密两个模式之间的base64编码字符串。每当我运行代码时,都会出现不正确的填充错误 这是我的密码 import base64 import re def find_between_r( s, first, last ): try: start = s.rindex( first ) + len( first ) e
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:
因为这是85垒!不是基地64!试试这个:
import base64
import binascii
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.b85decode(t))
你忘了先解码它的其他部分了吗?天哪,你为什么要把部分SQL放在GET参数中?!我不确定这个错误是什么意思,但我认为您可以通过将re.search'order=.*H',text更改为re.search'order=.*HTTP/1.1',text来修复它。我想你的版本有一个错误的断点。文本来自一个日志文件,我想解密'order='和'HTTP'之间的部分。这就是为什么我使用正则表达式将文本转换成tvariable@MegaIng尝试但仍然不正确填充错误当我在文本文件中附加两个==时,我将输出作为b'ASC,选择case fieldconcatsubstringbinasciisubstringpassword,17,1,1,substringbinasciisubstringpassword,17,1,2,1,concatchar48,char48,concatchar48,char49,concatchar49,char48,concatchar49,char49when 1,when 2,when 2,when sleep 2,when 3,when sleep 4,when 4,when sleep 6结束于membres where id=1’如果你有一个新问题,你应该在另一篇帖子上问它。它是同一问题的一部分,在文本中添加“==”可以使代码正常工作