“Hash” là gì và có tác dụng gì ?

Vào thời điểm viết bài này (có thể vài ngày sau mới được “lên sóng”), tôi đang tải về một file thông qua giao thức BitTorrent và trong khi chờ đợi 10% còn lại, hic, khá là gian nan đây vì tải từ 1 giờ 30 đến giờ (5h30 chiều) mới được 90% nên quyết định ngồi viết bài này.

Tôi sử dụng uTorrent để tải file và từ phần thông tin tải file, tôi có thấy mục Hash với một dãy số đại loại như “ANHHANGXOMONLINE304KSDHURI2874SGAJPQ” :v_smile: . Vậy dãy số này là…cái quái gì và nó có tác dụng gì ?

Hiện nay trên nhiều website cung cấp phần mềm, ngoài thông tin về phần mềm đó người ta còn cung cấp thêm thông tin về MD5 (một dãy số gồm 32 chữ số) hoặc SHA-1 (45 chữ số). Các tác giả phần mềm thường khuyến cáo bạn kiểm tra chuỗi MD5 của phần mềm bạn tải về (có thể bạn tải về từ website khác) xem có khớp với dãy số họ công bố hay không, nếu khớp thì chắc chắn đó là phần mềm gốc mà tác giả công bố, ngược lại phần mềm đó đã bị thay đổi nội dung (do người khác chỉnh sửa hoặc đã bị nhiễm các loại malware).
Trước tiên cần phải nói rằng tải file bằng giao thức BitTorrent là một con dao lớn hơn… 2 lưỡi, hehe. Nó mang lại nhiều lợi ích và cũng nhiều nguy cơ ẩn chứa. Lợi ích, chắc bạn cũng đã biết rồi, vd: một bộ phim mới ra và ngay lập tức nó có trên mạng Bittorent và có thể một thời gian sau (hoặc chẳng bao giờ) bạn mới tìm được trên web :think: . Nguy cơ hả ? Dựa vào thông tin Hash mà tôi nghĩ tới một nguy cơ : có thể file bạn tải về không còn nguyên vẹn như lúc ban đầu. Vd: một người tốt bụng chia sẽ một file thông qua giao thức Bittorrent, một người khác tải về thành công và lại chia sẽ nó, lần này anh ta “tốt bụng” chèn thêm các đoạn mã độc hay vài “con” virus chết tiệt vào đó, dung lượng file tăng nhẹ, từ vài byte cho đến vài Kb thì làm sao bạn biết được ?

VisualHash1

Đó chính là lý do mà người ta đặt mục Hash ở đây. Hash còn được gọi là “hàm băm” hay “bảng băm”. Hàm băm là một hàm toán học chuyển đổi một thông điệp đầu vào có độ dài bất kỳ thành một dãy bit có độ dài cố định (tuỳ thuộc vào thuật toán băm). Dãy bit này được gọi là thông điệp rút gọn (message digest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu. Hàm băm là hàm một chiều nên không thể tái tạo lại thông điệp ban đầu từ một chuỗi băm có sẵn. Mọi sự thay đổi dù là nhỏ nhất ở thông điệp đầu vào cũng cho ra kết quả là một dãy số hoàn toàn khác nhau nên đây là cách tốt nhất để kiểm tra tính toàn vẹn của một tập tin.

Ví dụ, tôi “băm” chuỗi “anhhangxomonline.net” sử dụng thuật toán SHA-1, tôi sẽ có được chuỗi “64872407 FCD074B9 3509D814 51DFC9EF 43C9D5D0” và chắc chắn là dù bạn có “băm” ở… Mỹ, Úc, Canada hay bất kỳ máy tính nào sử dụng bất kỳ phần mềm nào để “băm” thì vẫn ra kết quả như vậy. Nhưng nếu bạn “băm” chuỗi “Anhhangxomonline.comze.com” thì lại ra một kết quả khác bởi vì “A” và “a” là khác nhau.
Password Syskey (xem bài viết Syskey – Tính năng bảo mật cực mạnh của Windows) cũng chính vì vậy mà rất khó để giải mã thành công dù có một số người nói là đã phá được nó nhưng tôi không biết có đúng không nữa, “thịt” đã băm rồi thì làm sao trở lại như cũ được nữa, dùng …photoshop hả, hehe, :cuoibebung: , mà cũng không chừng…., thời @ mà.

Trong khi đợi 5% còn lại (hic, tiệm cơm sắp đóng cửa rồi, come on !), tôi muốn giới thiệu phần mềm có thể giúp bạn tạo ra các chuỗi băm từ một file bất kỳ, đó là “chàng tí hon” VisualHash, dung lượng 72.6Kb, tải tại www.dominik-reichl.de/projects/rehash/download/VisualHash-1.2.zip

VisualHash

VisualHash có thể tạo ra một chuỗi MD2, MD4, MD5, SHA-1/256/384/512 ……bằng cách sử dụng các hàm/thuật toán tương ứng.

Sau khi tải về bạn giải nén và chạy tập tin VisualHash.exe. Từ giao diện chính, bạn chọn thẻ Algorithms và chọn thuật toán sẽ sử dụng, sau đó “kéo và thả” tập tin cầm “băm” vào khung danh sách và bấm nút Compute Hashes, chuỗi MD5 (nếu sử dụng thuật toán MD5) sẽ xuất hiện bên dưới. Cùng một tập tin sẽ luôn cho ra một chuỗi MD5 giống nhau, nếu chúng khác nhau thì có nghĩa là tập ban đầu cũng khác nhau. Bạn cũng có thể tạo chuỗi MD5 từ một chuỗi ký tự bất kỳ bằng cách chọn thẻ Hash text, nhập vào chuỗi và bấm Compute Hashes.

Chuỗi MD5 là một dãy số gồm 32 chữ số, trong khi SHA-1 có 45 chữ số, SHA-256 có…bạn tự đếm đi. Và bạn có thể tự suy luận ra, dãy số càng dài thì chứng tỏ việc “băm” càng nhuyễn và cơ hội để miếng “thịt” “restore” lại trạng thái ban đầu là 0%.

Xong, uTorrent đã tải xong và bài viết này có lẽ cũng đủ rồi, “fair play” đợi thêm 30 phút nữa mặc dù đã tải xong, đó là “luật ngầm” khi tham gia mạng Bittorrent.
Giờ tôi đang băn khoăn file tôi vừa tải xong có chuỗi “Hash” ban đầu có trùng khớp với chuỗi mà uTorrent thông báo hay không, vì tôi quên không lưu lại chuỗi gốc ban đầu thì làm sao mà so sánh. Kệ, liều ăn nhiều.

15 Comments
  1. Mình không nói nhiều nhé, bài viết khá bổ ích, thân !

  2. anhhangxom này vui ghê. thế mà giờ mình mới bít blog này. rất vui vì được tiếp kiến

  3. bài viết rất hay ! cảm ơn bạn nhiều !

  4. anh oi
    Co’ mot vai`chuoi ma` bay h MD5 khong find dc.Phai lam` sao anh

  5. bai viet hay,thanks!

  6. Bài viết rất bổ ích, dí dỏm và rất hài hước. Rất vui được làm bạn với anhhangxom

  7. Thanks and Good luck 😀

  8. Làm sao biết được Hash của file torrent trước khi down về để so khớp với file gốc không AHX

    • Thông tin hash trước khi tải về phải do trang web đó cung cấp, thường là do người upload lên cung cấp. Còn người dùng chỉ có thể hash lại sau khi đã tải về và so sánh với chuỗi hash được người up cung cấp thôi.

  9. “Xong, uTorrent đã tải xong và bài viết này có lẽ cũng đủ rồi, “fair play” đợi thêm 30 phút nữa mặc dù đã tải xong, đó là “luật ngầm” khi tham gia mạng Bittorren” luat ngam nay la sao vay anh hang xom?

    • Thường thì các tracker (dạng web chuyên cho thành viên chơi torrent) sẽ quản lý tài khoản thành viên bằng ratio (tỉ lệ down/up), ratio cơ bản mà nhiều tracker chấp nhận là 1.0, tức dung lượng bạn đã download = dung lượng bạn seed trở lại. Phần seed này có thể là upload file mới hoặc seed ké của người khác nếu bạn đã có sẵn file này, rất tiện. Tùy mỗi tracker mà cái ratio tối thiểu có thể thay đổi, dưới mức này bạn sẽ bị hạn chế các quyền và nhận warning, dưới nữa thì ban luôn.
      Cộng đồng torrent rất đề cao tính chia sẻ, nên những người H’n’R (hit-and-run, down xong không seed lại) sẽ sớm bị tẩy chay 🙂

Gửi phản hồi