Tôi đang cố gắng tạo một trang web có tính năng đăng nhập/đăng xuất và tôi có kế hoạch băm và nhập mật khẩu đúng cách. Vấn đề tôi phải đối mặt, tuy nhiên, là làm thế nào tôi muốn đi về lưu trữ mật khẩu trong cơ sở dữ liệu. Tôi biết rằng tôi cần phải lưu trữ mật khẩu băm + muối trong cơ sở dữ liệu (không phải trong văn bản thuần hoặc mã hóa đơn giản), nhưng tôi không biết làm thế nào để kỹ thuật có được xung quanh chèn dữ liệu nhị phân vào cơ sở dữ liệu.Làm cách nào để lưu trữ băm trong cơ sở dữ liệu SQL Server bằng C#?
Trong nỗ lực ban đầu, cách duy nhất tôi có thể lấy dữ liệu trong cơ sở dữ liệu là chuyển dữ liệu nhị phân thành chuỗi base64 và chèn vào trường mật khẩu varchar
. để làm điều đó.
Trường mật khẩu trong cơ sở dữ liệu hiện là varchar
nhưng khi tôi hiểu nó, mật khẩu được băm là nhị phân. Vì vậy, ngay cả khi tôi đã thay đổi trường mật khẩu thành một đối tượng nhị phân, tôi vẫn không biết cách thực sự chèn nó vào!
Nếu tôi không có ý nghĩa gì, vui lòng yêu cầu làm rõ và tôi sẽ liên hệ lại với bạn.
Băm có thể là một varchar ... nó không phải là nhị phân ở tất cả, nhưng ra khỏi sự tò mò chức năng có bạn đang sử dụng là gì? – hackartist
Tại sao bạn không muốn sử dụng base64? Nó đơn giản và dữ liệu đủ nhỏ không phải lo lắng về kích thước. –
Base64 là cách an toàn nhất để loại băm ở dạng có thể đọc được. Không có gì sai với việc lưu trữ một băm muối dưới dạng văn bản thuần túy; đó là toàn bộ mục đích đằng sau việc lưu trữ một băm chứ không phải mật khẩu. – Douglas