thể trùng lặp:
Secure hash and salt for PHP passwordsTên người dùng, Mật khẩu, Salting, Encrypting, Hash - Tất cả hoạt động như thế nào?
Iv'e đọc rất nhiều bài viết cả trong stackoverflow và các trang web khác nói về bảo mật web. Chẳng hạn như salting mã hóa vv Và tôi kinda không nhận được nó như vậy một lời giải thích đơn giản sẽ thực sự hữu ích.
Vì vậy, đây là những gì tôi biết cho đến thời điểm này. Người dùng ghi lại các loại tên người dùng và mật khẩu của mình. Đầu vào sau đó đi qua một quá trình. Giả sử tên người dùng và mật khẩu được kết hợp như ví dụ:
$username = (USERS USERNAME INPUT);
$password = (USERS PASSWORD INPUT);
$userinput = $username . $password;
Sau đó, chúng tôi thêm một chút muối.
$salt1 = "13$13aVc!kd";
$salt2 = "4kr$!vlmeoc";
$salted = $salt1 . $userinput . $salt2;
Sau đó, chúng tôi mã hóa nó.
$encrypted = encrypt($salted);
Sau đó kiểm tra với cơ sở dữ liệu và nếu sử dụng quyền của mình được đăng nhập.
Đó là cách nó hoạt động đúng không? Nhưng Iv'e đã đọc về cuộc tấn công bạo lực. Nó đoán các giá trị đầu vào phải không? Với quy trình trên. Nó không cho thấy kẻ tấn công chỉ cần lấy thông tin $ userinput chính xác để vào? Anh ta không cần phải đoán chuỗi dài $ mã hóa đúng không?
Lưu ý: Cho phép nói trong trường hợp này không có hình ảnh xác thực, không giới hạn số lần thử, không khóa, không có gì khác ngoài giới hạn ở trên.
Lưu ý: Hãy nhẹ nhàng tôi vẫn đang học.
Đó là lý do tại sao người dùng được khuyên nên sử dụng mật khẩu mạnh thay vì "12345" nhưng có thể có hiệu lực bạo lực trong trường hợp của bạn .. – Deadlock
để muối và mã hóa là vô dụng? –
Sắp xếp, nhưng ngày đăng nếu bị tấn công ở giữa sẽ không được sử dụng cho kẻ tấn công vì nó sẽ có trong chuỗi được mã hóa và không thể được đảo ngược cho đến khi anh ta không có giá trị muối. – Deadlock