1.3万Star,Google出品AI文件类型检测工具
项目简介
Magika 是一款新型的 AI 驱动文件类型检测工具,它借助深度学习的最新进展来实现高精度检测。
其核心是一个高度优化的自定义模型,大小仅几 MB,即使在单核 CPU 上也能在毫秒级完成精确的文件识别。Magika 在约 1 亿个样本(覆盖 200+ 种内容类型,包括二进制和文本文件格式)的数据集上进行训练和评估,在测试集上平均准确率达到 ~99%。
以下是 Magika 命令行工具的输出示例:

Magika 已在大规模生产环境中使用,帮助提升 Google 用户的安全性:它将 Gmail、Drive 和 Safe Browsing 的文件路由到合适的安防和内容策略扫描器,每周处理数千亿个样本。
不想看文章的可以看看视频介绍:
亮点
-
提供 Rust 命令行工具、Python API,以及 Rust、JavaScript/TypeScript(含实验性 npm 包,支持 Web Demo)、GoLang(开发中)绑定。 -
在约 1 亿个文件、200+ 内容类型 上训练和评估。 -
测试集平均精确率和召回率 ~99%,尤其在文本类文件上显著优于传统方法。 -
模型加载后(一次性开销),单文件推理时间约 5ms(单 CPU)。 -
支持同时分析数千个文件,也支持 -r递归扫描目录。 -
推理时间几乎与文件大小无关(仅使用文件头部有限内容)。 -
采用每内容类型阈值系统:模型会决定是否“信任”预测结果,否则返回通用标签(如“通用文本文档”或“未知二进制数据”)。 -
支持多种预测模式( high-confidence、medium-confidence、best-guess),可控制对错误的容忍度。 -
客户端和绑定已完全开源,更多内容即将发布。
快速开始
安装
命令行工具(CLI)
-
通过 Python 包安装(推荐):
pipx install magika -
macOS / Linux 使用 Homebrew:
brew install magika -
使用安装脚本:
curl -LsSf https://securityresearch.google/magika/install.sh | shWindows PowerShell:
powershell -ExecutionPolicy Bypass -c "irm https://securityresearch.google/magika/install.ps1 | iex" -
通过 Rust 安装:
cargo install --locked magika-cli
Python 包
pip install magika
JavaScript / TypeScript
npm install magika
快速上手示例
命令行工具
# 递归扫描目录cd tests_data/basic && magika -r * | head
输出示例:
asm/code.asm: Assembly (code)batch/simple.bat: DOS batch file (code)...docx/doc.docx: Microsoft Word 2007+ document (document)
JSON 输出
magika ./tests_data/basic/python/code.py --json
管道输入
cat tests_data/basic/ini/doc.ini | magika -# 输出:-: INI configuration file (text)
帮助信息
magika --help
Python 使用示例
from magika import Magikam = Magika()# 从字节识别res = m.identify_bytes(b'function log(msg) {console.log(msg);}')print(res.output.label) # javascript# 从路径识别res = m.identify_path('./tests_data/basic/ini/doc.ini')print(res.output.label) # ini# 从文件流识别with open('./tests_data/basic/ini/doc.ini', 'rb') as f: res = m.identify_stream(f)print(res.output.label) # ini
更多详细文档请访问 Magika 官网。
项目地址
https://github.com/google/magika
扫码加入技术交流群,备注「开发语言-城市-昵称」
合作请注明

如果你觉得这篇文章不错,别忘了点赞、在看、转发给更多需要的小伙伴哦!我们下期再见!
夜雨聆风