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:

Việc làm blockchain - web3

3D Artist (Junior)

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 15 triệu đồng

(Hà Nội) Junior/Middle Business Analyst

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 30 triệu đồng

Nhân Viên Tester (AppotaPay)

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

(Hà Nội) Junior/Middle Scrum Master

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 25 triệu đồng

Chuyên Viên Media

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

(Hà Nội) CTV Media (OTA Network)

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

(REMOTE/Hà Nội) Game Designer (Game Casual)

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

Digital Marketing Executive (Adsota)

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

Chuyên Viên Digital Marketing (Có Tiếng Trung)

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

(Hà Nội) Marketing Manager _upto $1500

Hạn ứng tuyển 29/11/2024
Mức lương: 1200 - 1800 USD

(Hà Nội) Junior/Middle/Senior IOS Developer (Salary: 15 - 40M)

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

(Hà Nội) Junior/Middle Product Owner (Net Salary: 15 - 30M)

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

(Hà Nội) Junior/Middle Flutter Developer (Upto 30M)

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

(Hà Nội) Junior System Admin (Kdata)

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

(Hà Nội) Senior Java Developer

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 50 triệu đồng

(Hà Nội) Senior Automation Tester

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

Game Designer (net Salary: 10 - 35m)

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

(Hà Nội) Middle UI/UX Designer

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 20 triệu đồng

(HCM) Sales Executive

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

(Hà Nội) Graphic Design/3D Artist (Salary: 10-15M)

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