该项目旨在帮助搜索已泄露的密码,同时通过k-匿名方法保持高水平的隐私。
为了实现这一点,使用了不同服务的API,仅发送我们要检查的密码哈希的一部分,例如前5个字符。
该项目需要一些库才能运行,使用以下命令安装:
pip install -r requirements
请记住需要Python 3。
passme.py [FUNC] [ELEMENT] -engine [ENGINE] -api_key [API_KEY]
FUNC: 您要检查的元素类型,可以是 -h/--hash 或 -p/--password 或 -f/--file 或 -l/--list 或 --help。
ELEMENT: 哈希、密码或包含以换行符分隔的哈希或密码列表的文件名。
ENGINE: 您要使用的泄露引擎,默认使用HIBP(Have I been PWN)。
API_KEY: 某些引擎的某些功能所需的API密钥。
项目主函数接收哈希密码、要使用的引擎和API密钥。
根据接收到的引擎,API密钥和哈希密码将被发送到不同的函数。
如果您想添加自己的引擎或尚未实现的引擎,只需在此处添加一个选项。
passme_hash(hashed_password, engine="HIBP", api_key="0")
此函数使用SHA-1对接收到的密码进行哈希,并将哈希发送到passme_hash()函数。
passme_password(password, engine="HIBP", api_key="0")
此函数逐行读取接收到的文件,检查每个密码,提供关于接收到的密码以及是否已被泄露的信息。
passme_file(filename, engine="HIBP", api_key="0")
此函数逐行读取接收到的文件,检查每个哈希,提供关于接收到的哈希以及是否已被泄露的信息。
passme_list(filename, engine="HIBP", api_key="0")
处理HIBP(Have I been pwned)API的函数,发送哈希的前五个字符,然后与完整哈希进行比较,以查看密码/哈希是否已被泄露。
engine_HIBP(hashed_password, engine, api_key)
该项目有一系列测试来检查所有函数的正确运行,为此使用了pytest库。要运行测试,请使用以下命令安装pytest:
pip install pytest
安装完成后,只需运行“pytest”命令,测试将自动运行,遇到的任何错误都会通过终端返回。
实验室测试结果如下:
本项目基于GNU通用公共许可证授权 - 详细内容请参见LICENSE文件
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是合同行为、侵权行为还是其他行为,均由本软件或本软件的使用或其他交易引起、由本软件或本软件的使用或其他交易导致。
本软件没有质量保证流程。本软件是一个概念验证。
如果您有任何问题,可以联系:
[email protected] - Ideas Locas CDCO - Telefónica
在许多地方,未经所有者同意在他人计算机上安装软件可能构成犯罪。我们不支持将PoC用于任何非法目的。以任何方式下载或使用我们的软件,您必须承认并同意以下内容:
1 - 您声明此PoC将仅以合法方式使用。如果您对合法性存有疑问,请咨询您使用此PoC所在地的持证律师。
2 - 您承认即将安装该软件的计算机属于您自己,或者您已获得所有者同意进行管理并安装该软件。
| Python版本 | 函数哈希 | 函数列表 | 函数密码 | 随机哈希 | 随机密码 | 备注 |
|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.5 | ✅ | ✅ | ✅ | ❌ | ❌ | Random.choice在Python 3.5中不可用 // 已弃用的Python版本 |