Password Expiry Calculator

Calculate password expiry dates based on your security policy and get alerts for expiring passwords.

Status
Active
2026-06-24
Expiry Date
0
Days Since Change
89
Days Until Expiry

Часто задаваемые вопросы

Реализация кода

from datetime import datetime, timedelta

def calculate_password_expiry(
    last_changed: datetime,
    policy_days: int,
    warn_days: int = 14
) -> dict:
    """Calculate password expiry status."""
    expiry_date = last_changed + timedelta(days=policy_days)
    now = datetime.now()
    days_until_expiry = (expiry_date - now).days
    days_since_change = (now - last_changed).days
    is_expired = now >= expiry_date
    is_warning = not is_expired and days_until_expiry <= warn_days

    if is_expired:
        status = "EXPIRED"
    elif is_warning:
        status = "EXPIRING_SOON"
    else:
        status = "ACTIVE"

    return {
        "last_changed": last_changed.strftime("%Y-%m-%d"),
        "expiry_date": expiry_date.strftime("%Y-%m-%d"),
        "days_since_change": days_since_change,
        "days_until_expiry": max(0, days_until_expiry),
        "is_expired": is_expired,
        "status": status,
        "policy_days": policy_days
    }

# Example
result = calculate_password_expiry(
    last_changed=datetime(2024, 1, 1),
    policy_days=90,
    warn_days=14
)
for key, value in result.items():
    print(f"{key}: {value}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.