Update Readme Files

This commit is contained in:
2025-11-13 23:56:05 +00:00
parent e51c5184e9
commit 5c33d45112
11 changed files with 155 additions and 153 deletions

View File

@@ -10,6 +10,8 @@ from salt import hash_password, verify_password
def _build_parser() -> argparse.ArgumentParser:
from algorithms import list_algorithms
parser = argparse.ArgumentParser(
description="CLI für Password-Hashing (PBKDF2, Argon2, bcrypt) inklusive Verify-Modus."
)
@@ -19,6 +21,13 @@ def _build_parser() -> argparse.ArgumentParser:
"generate", help="Erzeugt ein neues Salt+Hash Paar."
)
generate_parser.add_argument("password", help="Klartext-Passwort zum Hashen.")
generate_parser.add_argument(
"--algorithm",
"-a",
choices=list_algorithms(),
default="pbkdf2",
help="Hash-Algorithmus (Standard: pbkdf2)",
)
verify_parser = subparsers.add_parser(
"verify",
@@ -27,29 +36,52 @@ def _build_parser() -> argparse.ArgumentParser:
verify_parser.add_argument("password", help="Passwort zum Prüfen.")
verify_parser.add_argument("salt", help="Base64-kodiertes Salt.")
verify_parser.add_argument("hash", help="Base64-kodierter Hash.")
verify_parser.add_argument(
"--algorithm",
"-a",
choices=list_algorithms(),
default="pbkdf2",
help="Hash-Algorithmus (Standard: pbkdf2)",
)
subparsers.add_parser(
"list-algorithms", help="Zeigt alle verfügbaren Hash-Algorithmen an."
)
return parser
def _command_generate(args: argparse.Namespace) -> int:
salt, hash_value = hash_password(args.password)
salt, hash_value = hash_password(args.password, algorithm=args.algorithm)
print(f"Salt: {salt}")
print(f"Hash: {hash_value}")
return 0
def _command_verify(args: argparse.Namespace) -> int:
if verify_password(args.password, args.salt, args.hash):
if verify_password(args.password, args.salt, args.hash, algorithm=args.algorithm):
print("✓ Passwort korrekt")
return 0
print("✗ Passwort falsch")
return 1
def _command_list_algorithms() -> int:
from algorithms import list_algorithms
print("Verfügbare Algorithmen:")
for algo in list_algorithms():
print(f" - {algo}")
return 0
def main(argv: Sequence[str] | None = None) -> int:
parser = _build_parser()
args = parser.parse_args(argv)
if args.command == "generate":
return _command_generate(args)
if args.command == "list-algorithms":
return _command_list_algorithms()
return _command_verify(args)