Hash là gì?

Hash là gì?

Hash (hàm băm) được sử dụng trong nhiều ứng dụng chẳng hạn như mật mã, xác thực, kiểm tra tính toàn vẹn của dữ liệu và chữ ký số. Chúng cũng được sử dụng để lập chỉ mục dữ liệu trong cơ sở dữ liệu và công cụ tìm kiếm. Trong bài viết này, BlockchainWork sẽ thảo luận về những điều cơ bản của hàm băm và các trường hợp sử dụng của chúng.

Tổng quan về hash

Hash là quá trình chuyển đổi khóa hoặc chuỗi ký tự thành một giá trị khác. Nó có thể chuyển đổi bất kỳ giá trị nào, chẳng hạn như số hoặc tài liệu  thành một chuỗi có độ dài xác định.

Các hàm mã hóa có thể giải mã dữ liệu, trong khi các hash function chỉ có thể biến đổi dữ liệu theo một hướng và nó không thể chuyển đổi dữ liệu đã băm trở lại dữ liệu ban đầu. Ngoài ra, nếu bạn thay đổi dù chỉ một ký tự trong dữ liệu gốc, kết quả được băm sẽ hoàn toàn khác. Điều này khiến bạn không thể đoán được dữ liệu gốc từ kết quả được băm.

Chức năng phổ biến của hàm băm là lưu trữ mật khẩu cho các trang web. Các trang web thường băm mật khẩu và lưu trữ chúng trong cơ sở dữ liệu. Giá trị băm của mật khẩu nhập từ biểu mẫu được so sánh với giá trị băm của mật khẩu lưu trữ trong cơ sở dữ liệu và mật khẩu xác nhận bằng cách xem liệu chúng có khớp hay không.

Tuy nhiên chỉ có mật khẩu băm được lưu trữ trong cơ sở dữ liệu, nên không thể khôi phục mật khẩu từ các giá trị số được lưu trữ trong cơ sở dữ liệu và một mức độ bảo mật nhất định được duy trì ngay cả khi nội dung của cơ sở dữ liệu bị rò rỉ.

Hash được sử dụng ở mọi nơi trong các blockchain như Bitcoin. Đặc biệt trong khai thác, hash được sử dụng nhiều lần, vì vậy hiệu quả của việc tính toán của nó là rất quan trọng. Vì lý do đó, phần cứng chuyên dùng để tính toán hash cũng đang được phát triển.

Các hash function được Bitcoin sử dụng là SHA256 và RIPEMD160. Chúng phù hợp để tính toán trên GPU và ASIC (phần cứng dành riêng cho tính toán). Mặt khác, nhiều chuỗi khối khác sử dụng thuật toán băm khó tính toán với GPU và ASIC để có thể dễ dàng khai thác chúng trên PC thông thường.

SHA256 được sử dụng trong Bitcoin là một trong những hàm băm tính giá trị đặc trưng có độ dài cố định từ độ dài tùy ý của văn bản gốc. Nói cách khác, nó tạo ra giá trị băm 256 bit từ bất kỳ độ dài nào của văn bản gốc. SHA256 được sử dụng rộng rãi nhờ sự cân bằng tuyệt vời giữa tính dễ thực hiện, tốc độ tính toán và bảo mật mã hóa.

Ví dụ về hash

Để hiểu được các đặc điểm trên, chúng ta hãy áp dụng hash function SHA256 cho dữ liệu và chuyển đổi nó như sau.

Chuyển-dổi-dữ-liệu-bằng-hash-function

Chuyển đổi dữ liệu bằng hash function (Nguồn Gaiax)

Do đó, một ký tự hoặc bit khác biệt sẽ dẫn đến một giá trị băm hoàn toàn khác.

Khác-dữ-liệu-dầu-vào-sẽ-cho-ra-kết-quả-khác-nhau

Khác dữ liệu đầu vào sẽ cho ra kết quả khác nhau (Nguồn Gaiax)

Một tính năng khác là độ dài (số bit) của giá trị số đầu ra là như nhau ngay cả trong trường hợp chuỗi ký tự dài. Do đó bất kỳ chuỗi ký tự dài nào cũng được chuyển đổi thành độ dài cố định. Vì vậy nó thường được sử dụng như một hàm để tóm tắt các câu và tệp hình ảnh.

Hash đôi

Hash đôi là việc sử dụng lặp đi lặp lại các hash function. Giá trị đầu ra sau khi được đưa vào hash một lần sẽ  được hash một lần nữa. Ưu điểm của hash đôi là tính bảo mật được nhân đôi so với việc áp dụng hash một lần. Vì lý do này, nó được sử dụng trong các tình huống khác nhau.

Như đã đề cập ở trên, trong số các hàm băm SHA256 và RIPEMD160 được sử dụng trong bitcoin nhưng hàm băm áp dụng SHA256 thường được sử dụng hơn. Tuy nhiên, nếu cần một hàm băm ngắn hơn, thì hàm băm có áp dụng SHA256 và RIPEMD160 sẽ được sử dụng. 

Kết luận

Các hash (hàm băm) là một phần quan trọng của mật mã học và chúng đóng một vai trò quan trọng trong bảo mật dữ liệu. Chúng được sử dụng để tạo ra một giá trị băm duy nhất từ bất kỳ dữ liệu cụ thể nào, sau đó có thể được sử dụng để xác minh tính xác thực của dữ liệu đó. Các hash function cũng được sử dụng để lưu trữ mật khẩu một cách an toàn, vì chúng có thể tạo ra một giá trị băm duy nhất cho mỗi mật khẩu. Tóm lại, các hash function cung cấp một cách hiệu quả để lưu trữ và xác thực dữ liệu một cách an toàn. 

BlockchainWork biên dịch

Nguồn: Gaiax blockchain

>> Có thể bạn quan tâm:

Nhân vật Adam Back – CEO của Blockstream

Vương Thảo 17/04/2024

Adam Back là một nhà khoa học máy tính và chuyên gia về mật mã số học người Anh. Ông nổi tiếng với những đóng góp quan trọng trong lĩnh vực mật mã và công nghệ blockchain. Ông…

Nhân vật Roger Ver – Nhà sáng lập Bitcoin.com

Vương Thảo 17/04/2024

Roger Ver, thường được biết đến với biệt danh “Bitcoin Jesus”, là một trong những nhà đầu tư ban đầu vào Bitcoin và các doanh nghiệp liên quan đến Bitcoin. Ông đã từng quảng bá mạnh mẽ cho…

Cách tăng năng suất và hiệu quả cho kỹ sư blockchain

Vương Thảo 17/04/2024

Blockchain là một công nghệ mới mẻ và đầy tiềm năng, nhưng cũng đầy thách thức. Việc làm việc trong lĩnh vực này đòi hỏi sự chính xác, kiên nhẫn và sự chuyên nghiệp cao. Vậy làm thế…

Việc làm blockchain - web3

[Hà Nội - Fulltime] IOS Developer (Junior/Middle/Senior)

Hạn ứng tuyển 29/04/2024
Mức lương: 14 - 40 triệu đồng

[HCM - Fulltime] Project Engineer

Hạn ứng tuyển 29/04/2024
Mức lương: 20 - 35 triệu đồng

[HCM - Fulltime] Senior Fullstack Developer

Hạn ứng tuyển 30/05/2024
Mức lương: 10 - 40 triệu đồng

[Hà Nội - Fulltime] Frontend Lead

Hạn ứng tuyển 29/04/2024
Mức lương: 1000 - 2000 USD

[Hà Nội - Fulltime] Nhân Viên Business Development

Hạn ứng tuyển 29/04/2024
Mức lương: 20 - 35 triệu đồng

[Hà Nội - Fulltime] Blockchain Developer (Middle - Senior)

Hạn ứng tuyển 30/05/2024
Mức lương: 18 - 35 triệu đồng

[Hà Nội - Fulltime] Artist 2D Game (Junior/Middle/Senior)

Hạn ứng tuyển 29/04/2024
Mức lương: 10 - 40 triệu đồng

[Hà Nội - Fulltime] Video Game Editor (Junior) Tại WingsMob Studio

Hạn ứng tuyển 29/04/2024
Mức lương: 500 - 800 USD

[HCM - Fulltime] Umbala Labs_Tech Talent Acquisition Specialist

Hạn ứng tuyển 30/05/2024
Mức lương: Thỏa thuận

[Hà Nội - Fulltime] Graphic Design

Hạn ứng tuyển 30/05/2024
Mức lương: 15 - 17 triệu đồng

[HCM - Fulltime] Account Manager

Hạn ứng tuyển 29/04/2024
Mức lương: Thỏa thuận

[Hà Nội - Fulltime] Animation 3D (Mảng Hoạt Hình)

Hạn ứng tuyển 29/04/2024
Mức lương: 10 - 25 triệu đồng

[Hà Nội - Fulltime] Content Lead

Hạn ứng tuyển 29/04/2024
Mức lương: Lên đến 1000 USD

[HCM - Fulltime] Trưởng Phòng Tài Chính

Hạn ứng tuyển 29/04/2024
Mức lương: 15 - 20 triệu đồng

[HCM- Fulltime] Smart Contract (Senior)

Hạn ứng tuyển 30/05/2024
Mức lương: Thỏa thuận

[HN - Fulltime] Business Development Blockchain

Hạn ứng tuyển 30/05/2024
Mức lương: Thỏa thuận

[HCM - Parttime] Seeding/Shilling

Hạn ứng tuyển 29/04/2024
Mức lương: Từ 4 triệu đồng

[Hà Nội - Fulltime] Host Tik Tok

Hạn ứng tuyển 30/05/2024
Mức lương: 10 - 15 triệu đồng

[Hà Nội - Fulltime] Blockchain Marketing Executive

Hạn ứng tuyển 30/05/2024
Mức lương: 13 - 17 triệu đồng

[HN - Fulltime] Social Growth Specialist

Hạn ứng tuyển 30/05/2024
Mức lương: 600 - 700 USD