Update Readme Files
This commit is contained in:
36
salt2.py
36
salt2.py
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user