PBKDF2 là một thuật toán được sử dụng để tạo ra các khóa. Thuật toán này không được tạo ra nhằm mục đích băm mật khẩu, nhưng nhờ có đặc tính chậm, nó trở nên khá phù hợp với chức năng này. Khóa kết quả được tạo ra (HMAC) có thể được dùng để lưu trữ mật khẩu một cách an toàn. PBKDF2 không phải là hàm lý tưởng cho việc băm mật khẩu, nhưng bù lại nó rất dễ sử dụng và được xây dựng trên thuật toán băm SHA-1 hoặc SHA-2 (HMAC nào cũng có thể sử dụng được, nhưng đây là những khóa phổ biến nhất và có tính bảo mật cao nhất).

Trích dẫn từ: https://trankyphat.com/uncategorized/su-dung-ham-bam-de-bao-ve-mat-khau-hash-password-218/

Xây dựng hàm băm PBDKF2 như đoạn code bên dưới:

using System.Security.Cryptography;
using System.Text;

namespace Common.Hash
{
    public class PBKDF2
    {
        public static string Hash(string input, string salt, int length)
        {
            Rfc2898DeriveBytes pbkdf2 = new Rfc2898DeriveBytes(input, Encoding.ASCII.GetBytes(salt), iterations: 5000);
            StringBuilder hashSb = new StringBuilder();
            byte[] hash = pbkdf2.GetBytes(length);
            foreach (byte b in hash)
            {
                hashSb.Append(b.ToString("x2"));
            }
            return hashSb.ToString();
        }
    }
}

Xem thêm các bài viết về hàm băm tại đây:

Được gắn thẻ:

,