Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Tra ngược mật khẩu bằng rainbow table

    Tấn công Rainbow Table (tra ngược hash)

    Nếu mật khẩu được băm không có salt, kẻ tấn công có thể dựng sẵn bảng hash → password. Khi lộ CSDL, chỉ cần tra bảng là ra mật khẩu gốc.

    Cho từ điển gồm n mật khẩu, hãy dựng bảng SHA256(password) → password. Sau đó với m hash mục tiêu (hex), in mật khẩu tương ứng, hoặc NOT FOUND nếu không có trong từ điển.

    Ví dụ:

    Input:
    2
    123456
    password
    1
    8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
    Output:
    123456
    

    (hash trên là SHA256("123456"))

    • Định dạng đầu vào:

      Dòng 1: n. n dòng mật khẩu. Dòng kế: m. m dòng hash SHA-256 (hex) cần tra.

    • Ràng buộc đầu vào:

      1 <= n, m <= 1000; mật khẩu 1..64 ký tự.

    • Định dạng đầu ra:

      m dòng: mật khẩu tra được, hoặc 'NOT FOUND'.

    Ví dụ:

    Đầu vào:

    2
    123456
    password
    1
    8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
    

    Đầu ra:

    123456

    Giải thích:

    SHA256('123456') khớp mục từ điển → 123456.

    Đang tải editor...