SHA1, Sha0, MD4 và md5 đều được tìm thấy là không an toàn trong vài năm trở lại đây. Vấn đề là nếu kẻ tấn công có thể tạo ra 2 thông điệp khác nhau tạo ra cùng một kết quả băm, điều này được gọi là xung đột. Điều này gây ra rất nhiều vấn đề cho việc quản lý mật khẩu, kiểm tra tính toàn vẹn của tập tin, và nhiều hơn nữa. Hiện tại sha1 chỉ cung cấp 2^52 bit an ninh mà là trong tầm tay của kẻ tấn công. Trong trường hợp SHA-256 (thành viên nhỏ nhất của họ sha2) cung cấp 2^256 bit.
Tất cả nền tảng phải có triển khai SHA-256, mặc dù không phải tất cả các nền tảng đều có nguồn gốc. Trong PHP, bạn phải sử dụng phần mở rộng mhash. Nó khá khó hiểu rằng một số nền tảng không cung cấp chức năng băm an toàn, tôi thành thật tin rằng nó bởi vì họ không quan tâm đến secuirty. Trong trường hợp của PHP tôi biết thực tế là they don't care about secuirty.
Hiện tại không có gì sai với SHA-2 và nó có biên độ an toàn rất lớn. Bạn có thể sử dụng SHA-512 nếu bạn là thực sự là hoang tưởng. Sha-3 sẽ ra mắt vào năm 2012, bạn nên vá bất cứ thứ gì bạn có thể với sha-2 như PASSWORDS của mình, sau đó chuyển sang SHA-3 khi bạn có thể nhưng SHA-512 sẽ tốt trong thời gian RẤT NHIỀU.
-1 để truyền bá fud cũ –
@edgar miễn là php thiếu các tính năng cơ bản secuirty, như hàm băm an toàn, thì điều này vẫn rất phù hợp. Tôi không thể thay đổi sự thật dựa trên những gì bạn nghĩ. – rook