Переезд на md5

This commit is contained in:
2026-04-04 11:25:35 +03:00
parent 7c83fe5e1a
commit d3a40d4ef7
11 changed files with 44 additions and 40 deletions

View File

@@ -71,7 +71,7 @@ def decrypt_message(salt: bytes, iv: bytes, ct: bytes, file_key: str) -> str:
def compute_hash(text: str) -> str:
return hashlib.sha256(text.encode()).hexdigest()
return hashlib.md5(text.encode(), usedforsecurity=False).hexdigest()
def compute_hmac(file_key: str, text: str, salt: bytes) -> str:
@@ -136,10 +136,10 @@ def do_send(
if use_integrity:
h = compute_hash(text)
if test_integrity:
h = hashlib.sha256(b"CORRUPTED_" + os.urandom(4)).hexdigest()
print(f" [TX] SHA-256: {h} (CORRUPTED!)")
h = hashlib.md5(b"CORRUPTED_" + os.urandom(4), usedforsecurity=False).hexdigest()
print(f" [TX] MD5: {h} (CORRUPTED!)")
else:
print(f" [TX] SHA-256: {h}")
print(f" [TX] MD5: {h}")
msg["hash"] = h
if use_hmac:
@@ -278,7 +278,7 @@ def run_session(
if use_encrypt:
flags.append("3DES")
if use_integrity:
flags.append("SHA-256")
flags.append("MD5")
if use_hmac:
flags.append("HMAC-SHA256")
if test_integrity:
@@ -328,7 +328,9 @@ def run_client(args: argparse.Namespace) -> None:
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="Encrypted messaging (3DES-CBC + SHA-256)")
parser = argparse.ArgumentParser(
description="Encrypted messaging (3DES-CBC; integrity MD5 per assignment; optional HMAC-SHA256)"
)
sub = parser.add_subparsers(dest="role", required=True)
for name, sp in [("server", sub.add_parser("server", help="Start server")),
@@ -339,7 +341,7 @@ def build_parser() -> argparse.ArgumentParser:
sp.add_argument("host")
sp.add_argument("port", type=int)
sp.add_argument("--encrypt", action="store_true", help="Enable 3DES-CBC encryption")
sp.add_argument("--integrity", action="store_true", help="SHA-256 integrity check")
sp.add_argument("--integrity", action="store_true", help="MD5 integrity hash (variant / lab 2)")
sp.add_argument("--hmac", action="store_true", help="HMAC-SHA256 integrity + authentication")
sp.add_argument("--test-integrity", action="store_true", help="Send corrupted hash/HMAC")
sp.add_argument("--key", default=DEFAULT_KEY_FILE, help="Path to key file (default: key.txt)")