为了实现我们的目标,HashCheck利用了各种不同做事所供应的API,我们只须要检讨密码哈希的一部分即可实现密码透露判断,比如说密码哈希的前五个字符。
工具哀求该项目须要利用某些代码库才能正常事情,我们只需运行下列命令即可安装:
pip install -r requirements
别忘了,先要在本地环境中安装好Python 3。
工具利用passme.py [FUNC] [ELEMENT] -engine [ENGINE] -api_key [API_KEY] FUNC: The kind of element tha you want to check, it can be -h/--hash or -p/--password or -f/--file or -l/--list or --help. ELEMENT: The "Hash", "Password" or the name of the file that contains a list of hashes or password separeted by a new line. ENGINE: The leaks engine that you want to be used, by default it uses HIBP (Have I been PWN). API_KEY: The API_KEY necessary for some functions of some engines.
功能函数PASSME_HASH
该项目的紧张功能函数,卖力吸收一个密码哈希,并调用剖析引擎和API密钥。API密钥和密码哈希必须根据情形发送至其他函数。
如果你想要添加自己的引擎或实现一个还未实现的引擎,只须要多添加一个选项即可:
passme_hash(hashed_password, engine="HIBP", api_key="0")
PASSME_PASSWORD
这个函数会利用SHA-1对密码进行哈希打算,并将哈希发送至passme_hash()函数:
passme_password(password, engine="HIBP", api_key="0")
PASSME_FILE
这个函数可以按行读取吸收到的文件内容,并检讨每一个密码,然后给出吸收到的密码的干系信息:
passme_file(filename, engine="HIBP", api_key="0")
PASSME_LIST
这个函数可以按行读取吸收到的文件内容,并检讨每一个密码哈希,然后给出吸收到的密码哈希的干系信息:
passme_list(filename, engine="HIBP", api_key="0")
PASSME_HIBP
这个函数可以处理HIBP(Have I Been Pwned) API,并发送密码哈希的前五个字符,然后跟完全的密码哈希进行比对,以判断密码是否已透露:
engine_HIBP(hashed_password, engine, api_key)
功能测试
这个项目还供应了大量的测试用例以判断功能函数是否能够正常运行,如果须要测试的话,还须要安装“pytest”库:
pip install pytest
安装好之后,只须要运行“pytest”命令即可自动运行完全的测试用例。
项目地址HashCheck:https://github.com/Telefonica/HashCheck
容许证协议本项目的开拓与发布遵照GNU开源容许证协议。