官方 hashdd Python SDK
项目描述
哈希
pyhashdd 是一个用于构建和使用哈希数据库的库。
安装
安装完所有先决条件后,您可以使用 pyhashdd 安装pip
,[all]
extras 指令将安装扩展哈希所需的所有内容,例如ssdeep
and 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 许可证以获取版权信息。