Thursday, 30 May 2013

Tìm độ dài của mã md5, sha1

Trong một bài test, hacker Tùng Lâm đã đưa ra câu hỏi: chuỗi hash md5,  sha1 có bao nhiêu ký tự. Câu trả lời được đưa ra bằng câu lệnh sau:

hvn@lappy: ~ () $ for cmd in sha1sum md5sum; do echo -n $cmd' ' && date | $cmd | cut -d' ' -f 1 | tr -d '\n' | wc -c; done;
sha1sum 40
md5sum 32

GIẢI THÍCH:

date: lấy thời gian hiện tại, ta cần một đầu vào để sinh chuỗi hash, ở đây lấy kết quả của câu lệnh date
cut -d‘’ -f 1: câu lệnh md5sum hay sha1sum trả về kết quả không chỉ gồm chuỗi hash mà nó còn chưa 1 đoạn string không cần thiết nữa. lệnh cut này lấy phần thứ 1 (-f 1) sau khi cắt chuỗi bởi những dấu cách (-d “”)
tr -d "\n" : xóa ký tự \n (newline) ở cuối dòng, các câu lệnh hầu hết sẽ in ra ký tự này ở cuối kết quả nó trả về
wc -c : đếm số chữ cái ở đầu vào