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 n giá trị băm SHA-256 (không có salt, tức Hi=SHA256(Pi) với Pi là mật khẩu gốc chưa biết) và một từ điển gồm m từ ứng viên W1,…,Wm (theo đúng thứ tự xuất hiện). Với mỗi Hi, hãy tìm từ Wj đầu tiên trong từ điển (chỉ số j nhỏ nhất) sao cho SHA256(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 H1, kết quả cho H1 là password.
Dòng 1: số nguyên n (0≤n≤1000). n dòng tiếp theo: mỗi dòng một giá trị băm SHA-256 dạng hex Hi. Dòng kế tiếp: số nguyên m (0≤m≤100000). m dòng tiếp theo: mỗi dòng một từ trong từ điển Wj.
In ra n dòng: dòng thứ i là từ Wj đầu tiên khớp với Hi (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 Hi.
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...