A library to generate hashes for network devices.
Project description
Network Hash Gen
Generating hashes for network devices like routers and switches - with the option to specify seeds or salts.
Currently supported hashes:
- Cisco IOS/IOS-XE
- Type 5
- Type 9
- Juniper JunOS
- Type 1
- Type 6
- Type 9
If you are missing a hash function, please open an issue.
Example
This example generates a hash with a random salt and a hash with a given seed. The first function returns a different hash most of the times while the second one always returns the same hash value.
>>> from network_hash_gen.cisco_ios import Type9
>>> Type9.hash("foobar")
'$9$FteIXKc69u9886$JFenYTrYz7kgex.60fbd8kzIg3Y/fE8lhsrtZeiif8k'
>>> Type9.hash_seeded("foobar", "$hostname-$username")
'$9$XpsDCh72ruxTQc$Cm80vIgCAQPhWrLJczX53Z7qVg0AxKui6t8.QbWfBsU'
Installation
This package can be installed from PyPi via pip or whatever you prefer for dependency management.
pip install network-hash-gen
Documentation
The documentation build against the current master branch can be found here: https://991jo.github.io/network_hash_gen
To build the documentation for a specific version run
pdoc3 --html --template-dir=templates network_hash_gen
This will generate documentation in a folder called html
.
Development
Setup
This project uses poetry.
Clone this repository, then run
poetry install
This will create a venv and install the dev dependencies.
Running the tests
The tests are in the tests
folder and are executed with
python3 -m unittest
The unittests are also run via the pre-commit hooks.
To get test coverage reports coverage is used. Run
coverage run -m unittest
to run the tests and coverage report
for a CLI report of coverage html
to
generate a HTML version of the coverage report.
Code Formatting
The code in this repository is formated with black. The default settings are used. Please format the code with black before commiting. This can be done with
black network_hash_gen/
The code formatting is also checked (but not executed) in the commit hooks.
Pre-Commit Hooks
There are pre-commit hooks that check the code formating and run the unittests. They are executed via pre-commit. To enable the hooks run
pre-commit install
To run the hooks on all files execute
pre-commit run --all-files
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file network_hash_gen-0.3.0.tar.gz
.
File metadata
- Download URL: network_hash_gen-0.3.0.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.16.12-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5851f51d4e0f51bfd745f73b14313eba1cc10de0694a8484220771f08885500e |
|
MD5 | 621972cf2fc5e4dc0507e77bfa729ac4 |
|
BLAKE2b-256 | e6776181168d468df6eac17613adc2a7ed10e4997703bb0e71090c4e2ea20088 |
File details
Details for the file network_hash_gen-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: network_hash_gen-0.3.0-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.16.12-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0676434f67071725ce5db2f719cc592ca264ee4cf200861d69da7765d4c32433 |
|
MD5 | e6550e3fda7de5aafece0387ddb75644 |
|
BLAKE2b-256 | 50efae8a88e69bf22fd626a0fa839582ecd99082084e145aa10b34cbb746d05e |