[DEV] Tạo mã Hash từ 1 chuỗi sử dụng nhiều thuật toán (multi-algorithm) với C#

Bài này sẽ nói về cách tạo mã hash trên ngôn ngữ lập trình CSharp (C#)

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 mã hoàn toàn khác nhau.

Có nhiều hàm băm để tạo mã hash như: MD2, MD4, MD5, SHA 1/256/384/512…..

Khi phát triển 1 ứng dụng mà có yêu cầu lưu trữ tài khoản thì ta không nên lưu mật khẩu ở dạng thô (plain text) mà cần phải Hash để lưu trữ. Giả sử kẻ nào đó có được cơ sở dữ liệu của bạn thì họ cũng khó có thể dịch ngược ra mật khẩu gốc đã lưu trữ. (Tôi nói là “khó” tức là vẫn có thể dịch ngược lại bằng cách “thử”, phương pháp này được gọi là brute-force. Muốn biết phương pháp dịch ngược thì các bạn có thể tra thêm qua anh Gồ)

Giờ là phần code hàm hash:

Sử dụng:

 Nguồn

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz