2011-09-22 20 views

Trả lời

11

Đó là một trường thông thường varchar (40 ký tự) nhưng nếu bạn muốn đặt nó an toàn hơn, bạn nên sử dụng muối.

http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/

Cập nhật:

CẢNH BÁO: mật khẩu Hash mà không có muối là thực sự yếu kém! Bạn không bao giờ nên sử dụng nó !!

Mật khẩu muối là cách tốt để thực hiện điều đó: password salting

như adviced bởi pst:

  • bằng SHA-1 và muối là cách tiếp cận ngây thơ hơn nhưng khá tốt an toàn.

  • sử dụng bcrypt:

đó là cách tiếp cận an toàn hơn :) bởi vì nó sử dụng tốc độ để làm cho nó an toàn hơn, bfish là một hàm băm được xây dựng xung quanh các phương pháp mã hóa blowfish. (Có vẻ như twofish tồn tại quá và nên là phiên bản "hiện đại" của blowfish).

Đó là một phiên bản sử dụng một chuỗi các SHA-1 do đó, nó là một giải pháp trung gian, nhưng cho phép để thiết lập tốc độ yêu cầu của bạn. Trong thực tế, tốc độ làm cho an ninh của bạn yếu đi.

+2

Cũng nên sử dụng chức năng khác ("tốn kém tính toán") như 'bcrypt' và/hoặc sử dụng hàm băm HMAC. –

+2

Có, chắc chắn là muối của bạn. Ngoài ra, nếu bạn sử dụng một loại muối khác nhau cho mỗi người dùng, bạn sẽ giúp ngăn chặn các cuộc tấn công của Bảng Cầu vồng: http://en.wikipedia.org/wiki/Rainbow_table – Mac

+0

@pst: bạn có thể cung cấp thêm chi tiết không? :) – ykatchou

0

Hầu hết mọi người lưu mã băm như bạn đã đề xuất. Nó đủ an toàn và đơn giản, làm cho nó trở thành một lựa chọn tốt.

Lưu ý rằng tất cả các băm có thể bị bẻ khóa cuối cùng, vì vậy mọi băm đều tốt hơn không và SHA đủ mạnh.

+2

Đây là tồi tệ hơn đó - mà không có một muối một cuộc tấn công bảng cầu vồng tầm thường sẽ dễ dàng phá vỡ nó. Ngoài ra, một SHA đơn lẻ là ít hơn lý tưởng cho mật khẩu vì * nó có thể được tính toán cực kỳ nhanh chóng *. ('Bcrypt' và HMAC có thể giúp giải quyết điều đó.) –

+0

rất hữu ích HMAC cho dữ liệu nhỏ hơn một khối? – ykatchou

+0

@ykatchou Rất tiếc, nhận xét hơi không chính xác. [HMAC-SHA1] (http://en.wikipedia.org/wiki/HMAC) không được thiết kế để "giúp đỡ" với tốc độ, nhưng những gì nó có thể làm là thêm một mức độ cứng với một chìa khóa máy chủ bí mật. –

2

Bạn cũng có thể sử dụng hàm AES_ENCRYPT() được tích hợp vào mysql để bảo mật cao hơn. Link here

Ngoài ra còn có một tốt như thế nào-đến đây giải thích thêm: link

2

The manual chứa một lời giải thích tốt về những gì loại cột để sử dụng.

Các vấn đề liên quan