Skip to main content

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

network_hash_gen-0.3.0.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

network_hash_gen-0.3.0-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

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

Hashes for network_hash_gen-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5851f51d4e0f51bfd745f73b14313eba1cc10de0694a8484220771f08885500e
MD5 621972cf2fc5e4dc0507e77bfa729ac4
BLAKE2b-256 e6776181168d468df6eac17613adc2a7ed10e4997703bb0e71090c4e2ea20088

See more details on using hashes here.

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

Hashes for network_hash_gen-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0676434f67071725ce5db2f719cc592ca264ee4cf200861d69da7765d4c32433
MD5 e6550e3fda7de5aafece0387ddb75644
BLAKE2b-256 50efae8a88e69bf22fd626a0fa839582ecd99082084e145aa10b34cbb746d05e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page