上周因为工作原因,要帮忙把一个log日志文件里面的一列基于base64加密的HTTP报文解码,而这个文件有一万多条数据,自己一条一条去解码工作量太大,不好实现,所以就想着用python来帮忙。
这里不能把excel文件暴露,所以直接描述一下吧。我要解密的HTTP报文是第18列,将其解码后要添加到最后,也就是第27列。以下是源代码:
#-*-coding:utf8-*-
#本脚本用于在excel文件中将基于BASE64加密的HTTP报文解密,并写入最后一列
def main():
import openpyxl
import base64
wb=openpyxl.load_workbook('all.xlsx')#以excel文件新建一个workbook对象
sheet=wb.get_sheet_by_name('Sheet1')#文件的表sheet1
row_max=sheet.max_row#总行数
#从第二行开始(第一行是列名)对每一行解码和添加数据
for r in range(2,row_max):
j = sheet.cell(row=r,column=18).value#读取第18列的内容,即加密的HTTP报文
try:
newval = base64.b64decode(j)#进行解码
sheet.cell(row=r,column=27).value = newval#将解码后的内容添加在第27列
except:
newval = 'NULL'#解码失败
sheet.cell(row=r,column=27).value = newval
wb.save('all.xlsx')#保存
if __name__ == '__main__':
main()