公司文档希望对文档进行分级管理,不同的文档公开程度不同。请对给出的文件进行分级,提交各个级别文档的数量。按照一级文档数量、二级文档数量、三级文档数量、四级文档数量的顺序,使用英文半角逗号分隔,转为32位小写md5提交。分级规则如下:
-
一级文件:机密文档、财务报表
-
二级文件:产品研发文档、市场分析报告
-
三级文件:会议记录、内部公告
-
四级文件:宣传文件、说明书
【答案标准】
本题答案为32位小写md5值。举例说明,若分级得到一级文档12个,二级文档13个,三级文档20个,四级文档30个,拼接后为:12,13,20,30
最终提交的md5值为:9c7f3a1e9d8e8c44105f52b10af959e4
flag:2b6442d701050296ed46969e401aa1d7
思路:python遍历文件夹获取所有文件名,再根据规则匹配关键词追加到不同list中,再统计数量,并将其结果保存备用
代码附件:文档治理/1.py
✅文档治理2
文件在归档前都记录了其MD5值,用于检查文件是否经过修改。请计算各个文档的MD5值,找到哪些文件的MD5值与记录的不同,记录其编号,将这些编号从小到大进行排序,使用英文半角逗号分隔,转为32位小写md5提交。
【答案标准】
本题答案为32位小写md5值。举例说明,若通过计算,发现文件编号为0001,0002,0003 的md5值与记录的不同,那么拼接成如下字符串:0001,0002,0003
最终提交md5值为:2f1136976627bbacdac75e40c46d212d
flag:7425c8ff067dfb759de9b80721dd6ed7
思路:2.py用来计算所有pdf的md5值并保存,3.py读取刚刚保存的md5值再与题目提供的md5进行比对
代码附件:文档治理/2.py、文档治理/3.py
文档治理3
除了四级文档,其余文档归档时都应该被程序加上完全相同的公司电子公章,请检查文件,找到哪些文件中缺少公章,记录其编号,将这些编号从小到大进行排序,使用英文半角逗号分隔,转为32位小写md5提交。
【答案标准】
本题答案为32位小写md5值。举例说明,若通过计算,发现文件编号为0001,0002,0003 的文件没有公章,那么拼接成如下字符串:0001,0002,0003
最终提交md5值为:2f1136976627bbacdac75e40c46d212d
思路:这题有个注意事项【除4级文档外】
法一: 先使用Umi-OCR识别将每个pdf转为txt,然后读取txt判断有没有“公章”、“超级”这些关键词
项目地址:https://github.com/hiroi-sora/Umi-OCR
法二:python直接操作pdf进行识别(没实操过)
✅数据救援1
附件:数据救援.zip
由于开发的疏忽,系统在多线程场景下会产生日志中的不同的订单使用了相同的订单号的情况。请对日志文件进行清洗,找出这些订单后将这些重复的订单日志全部删除。提交删除后剩余的日志条数。
【答案标准】
本题答案为阿拉伯数字,提交清洗后剩余的日志条数,如清洗后剩余1222条日志,则提交:1222。
flag:124032
思路:
11.py 先将log日志转为csv文件
或者使用wps的分列功能也行
法一:

通过excel高亮筛选,13w条数据会很卡, 这一步要记得把高亮的数据都删掉
法二:
12.py:使用pyspark对齐进行数据去重处理,去重时要注意不是删重复中的一条,而是重复的都要删,速度快
代码附件:数据救援/11.py、数据救援/12.py
法三:将数据先导入数据库再通过sql语句查询实现
✅数据救援2
由于开发的疏忽,订单数据库丢失了,请根据清洗后的订单日志,恢复订单数据库。统计日志中的订单的总数以及各个状态的订单数量(注意这里的状态指的是订单在日志中出现的最终状态),按照“总订单数,已下单订单数,已发货订单数,已取消订单数,已完成订单数,已退款订单数”这样的顺序,使用英文半角逗号拼接成一个字符串,转为32位小写md5提交。
【答案标准】
本题答案是32位小写md5。举例说明,若统计得到的订单数如下:
总订单数: 70,已下单: 12,已发货: 13,已取消: 14,已完成: 15,已退款: 16
将得到的字符串拼接成字符串:70,12,13,14,15,16
最终提交md5值:4a2ed99c7a91be7478b10a123bc38034
思路:
python脚本循环将订单数据写入数据库,根据订单号来检测存在则改变条数,不存在则新增
然后分别统计状态数据
✅数据救援3
由于系统存在严重的bug,已退款的订单无法被识别,导致已退款的订单的发票仍然是正常开具,请统计在订单日志中,哪些订单是已退款但是能在提供的发票文件中找到对应文件的。将这些订单的订单号按照下单时间顺序,使用英文半角逗号分隔拼接成一个字符串,转为32位小写md5提交。
【答案标准】
本题答案是32位小写md5。举例说明,若统计得到下面的订单状态是已退款的,拼接得到的字符串如下:
ORD2025070712345678,ORD2025080812345678
最终提交md5值为:1905c6ff6e9b970a77b02f1e4c25462d
思路:
使用Umi-OCR识别pdf转为txt
python批量读取txt,正则提取订单号
从上面统计到已退款的订单号数据来和这个提取出来的发票订单号进行匹配
✅数据脱敏1
附件:数据脱敏.zip
请根据流量包,获取数据库密码并作为答案提交。
【答案标准】
若数据库密码为:123456,则最终提交答案为:123456。
flag:66e26a61
思路:一句话目录,url解码看php代码即可,数据库密码在get参数中
✅数据脱敏2
请根据流量包,统计出本次事件总共泄漏了多少条脱敏数据。
【答案标准】
若库1泄漏300条,库2泄漏200条,则最终提交答案为:500
一共是泄露了三个库,分别进行相加即可,注意字段列别算上了
✅数据脱敏3
已知犯罪份子掌握了客户的姓名、手机号、邮箱、身份证号,请你根据现获取的数据找出脱敏处理中可能存在的安全隐患,并将客户明文个人信息作为答案提交。
【答案标准】
#artContent h1{font-size:16px;font-weight: 400;}#artContent p img{float:none !important;}#artContent table{width:100% !important;}