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] Tấn công từ điển bẻ khóa mật khẩu

    Tấn công từ điển (dictionary attack) là kỹ thuật bẻ khóa mật khẩu bằng cách băm lần lượt các từ trong một từ điển cho sẵn rồi so sánh với các giá trị băm bị lộ, thay vì vét cạn toàn bộ không gian ký tự.

    Cho nnn giá trị băm SHA-256 (không có salt, tức Hi=SHA256(Pi)H_i = \text{SHA256}(P_i)Hi​=SHA256(Pi​) với PiP_iPi​ là mật khẩu gốc chưa biết) và một từ điển gồm mmm từ ứng viên W1,…,WmW_1, \dots, W_mW1​,…,Wm​ (theo đúng thứ tự xuất hiện). Với mỗi HiH_iHi​, hãy tìm từ WjW_jWj​ đầu tiên trong từ điển (chỉ số jjj nhỏ nhất) sao cho SHA256(Wj)=Hi\text{SHA256}(W_j) = H_iSHA256(Wj​)=Hi​; nếu không có từ nào trong từ điển khớp, kết luận không tìm thấy.

    Ví dụ: với từ điển chứa password ở vị trí đầu tiên có băm khớp với H1H_1H1​, kết quả cho H1H_1H1​ là password.

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

      Dòng 1: số nguyên nnn (0≤n≤10000 \le n \le 10000≤n≤1000). nnn dòng tiếp theo: mỗi dòng một giá trị băm SHA-256 dạng hex HiH_iHi​. Dòng kế tiếp: số nguyên mmm (0≤m≤1000000 \le m \le 1000000≤m≤100000). mmm dòng tiếp theo: mỗi dòng một từ trong từ điển WjW_jWj​.

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

      In ra nnn dòng: dòng thứ iii là từ WjW_jWj​ đầu tiên khớp với HiH_iHi​ (giữ nguyên chuỗi gốc trong từ điển), hoặc NOTFOUND nếu không có từ nào trong từ điển có băm bằng HiH_iHi​.

    Ví dụ:

    Đầu vào:

    1
    8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
    10
    123456
    password
    qwerty
    letmein
    dragon
    monkey
    admin
    iloveyou
    sunshine
    princess
    

    Đầu ra:

    admin
    

    Đầu vào:

    3
    5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
    65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5
    deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
    10
    123456
    password
    qwerty
    letmein
    dragon
    monkey
    admin
    iloveyou
    sunshine
    princess
    

    Đầu ra:

    password
    qwerty
    NOTFOUND
    

    Đang tải editor...