官方 hashdd Python SDK
项目描述
哈希
pyhashdd 是一个用于构建和使用哈希数据库的库。
安装
安装完所有先决条件后,您可以使用 pyhashdd 安装pip,[all]extras 指令将安装扩展哈希所需的所有内容,例如ssdeepand pysha3:
pip install hashdd[all]
替代安装
默认安装
默认情况下,我们不想假设您已经安装了所有必需的先决条件,因此我们只安装绝对最低限度,以便您将库用作导入。
pip install hashdd
扩展哈希安装
我们的许多“扩展”哈希本质上是流行的操作系统库的包装器。这些库是我们不想强迫您使用的操作系统级别的依赖项。因此,但默认情况下,我们不安装它们,但如果您愿意,您可以选择安装它们。
pip install hashdd[all]
码头工人
从 git root 构建容器:
docker build -t hashdd .
创建一个要扫描的目录,并将我们的复制sample.exe到其中。
mkdir files_to_scan/
cp tests/data/sample.exe files_to_scan/
安装files_to_scan/并扫描!
docker run --rm -v "$PWD"/files_to_scan:/files_to_scan hashdd hashdd compute -d /files_to_scan
先决条件
Ubuntu
sudo apt-get install libfuzzy-dev libmhash-dev libffi-dev libssl-dev
OSX/达尔文先决条件
brew install ssdeep
hashddcli例子
要递归地(-d goodfiles/)计算goodfiles/目录中文件的 SHA256 哈希,并将这些哈希添加到新的布隆过滤器(布隆过滤器存储在 中hashdd.bloom):
hashdd bloom -d goodfiles/
创建布隆过滤器后,该bloom选项现在将计算的哈希值与布隆进行比较。要计算sample.exe( -f sample.exe) 的 SHA256 哈希并检查它是否在布隆过滤器 ( bloom) 内:
hashdd bloom -f sample.exe
要计算 ( compute) 所有哈希 ( --all) 并将它们输出到屏幕:
hashdd compute -f sample.exe --all
要计算特定的哈希类型:
hashdd compute -f sample.exe -a md5w
库示例
使用所有算法和特性对文件进行哈希处理,然后将结果存储在 Mongo 中:
>>> from hashdd import hashdd
>>> h = hashdd(filename='sample.exe')
>>> from pymongo import MongoClient
>>> db = MongoClient().hashdd
>>> db.hashes.insert_one(h.result)
测试
python -m unittest discover -s tests/
py-mhash和mhashlib
早在 2017 年,我们就修复了 py-mhash中的一个问题,该问题已合并到 git 存储库中,但是此修复并未作为 PyPi 发行版的一部分构建。py-mhash我们已经与 hashdd捆绑在一起,而不是进一步依赖包维护者。请参阅py-mash 许可证以获取版权信息。