大家好,我是开源君!
在开发和安全运维中,我们常遇到文件“表里不一”的情况:一个看似无害的.jpg图片,实际可能是改了后缀的恶意可执行文件。
传统文件类型检测依赖文件头或后缀,易被篡改、混淆、无后缀场景误导,安全与自动化场景风险高。
最近在 Github 上看到一款Google出品、基于深度学习的AI文件类型检测神器 - Magika,彻底解决文件“认不准”的难题。
Magika是Google安全团队开源的AI驱动文件内容类型检测工具,抛弃固定规则匹配,用深度学习理解文件结构,精准识别真实类型。它内置轻量优化模型,仅几MB,单CPU即可毫秒级推理,支持200+格式,测试集准确率约99%。已在Gmail、Drive、Safe Browsing大规模落地,周处理千亿级样本,集成VirusTotal等安全平台.

项目在GitHub上收获 1.8w+ 海量开发者关注,热度持续攀升。
file 命令的对比优势通过4组经典场景,对比 Magika 和传统 file 命令优势。
很多脚本、代码文件没有后缀,传统工具只能告诉你是“文本”,但 Magika 能精准识别出具体语言。
# 创建一个无后缀的 Python 代码文件
!echo "def hello(): return 123" > test_code
print("===== file 命令 =====")
!file test_code
print("\n===== Magika =====")
!magika --no-colors test_code
运行结果:

ASCII text,无法判断具体语言Python source (code)很多自动化脚本没有 #!/bin/bash 头部,传统工具会把它当成普通文本,而 Magika 能看穿脚本的真实用途。
# 创建一个无 #! 开头的 Shell 脚本
!echo "ls -l && cd /tmp" > script_file
print("===== file 命令 =====")
!file script_file
print("\n===== Magika =====")
!magika --no-colors script_file
运行结果:

file 命令:输出 ASCII text,无法识别脚本类型DOS batch file (code)像 db.conf 这类配置文件,传统工具只能告诉你是文本,而 Magika 能识别出具体的配置格式。
# 创建一个 MySQL 配置文件
!echo "[mysqld] port=3306" > db.conf
print("===== file 命令 =====")
!file db.conf
print("\n===== Magika =====")
!magika --no-colors db.conf
运行结果:

file 命令:输出 ASCII textINI configuration file (text)如果文件被截断成碎片,传统工具会直接报错或识别失败,而 Magika 依然能通过内容特征判断真实类型。
# 将docx文件截断成 64 字节碎片
!head -c 64 A.docx > fragment.docx
print("===== file 命令 =====")
!file fragment.docx
print("\n===== Magika =====")
!magika --no-colors fragment.docx
运行结果:

file 命令:输出 Zip archive data,无法识别为文档Microsoft Word 2007+ document (document)Magika 提供了多种安装方式,用户可以根据自己的需求选择合适的方式。
pip install magika
brew install magika
curl -LsSf https://securityresearch.google/magika/install.sh | sh
Magika 的命令行工具非常直观,以下是几个常见的使用示例:
magika -r ./my_folder

magika ./example.py --json

magika ./example.txt --output-score

如果你更喜欢使用 Python,可以通过以下代码进行文件类型识别:
from magika import Magika
m = Magika()
res = m.identify_bytes(b'function log(msg) {console.log(msg);}') # 输入文件内容
print(res.output.label) # 输出文件类型标签
Magika是一款创新的 AI 文件类型检测工具,具有高效、精准、易集成等优点。无论是用于文件管理、安全扫描还是内容审核,Magika 都能提供快速可靠的文件识别服务。感兴趣的朋友可以安装体验,可以尝试体验或集成到自己的项目中。
更多细节功能,感兴趣的可以到项目地址查看:
https://github.com/google/magika