phần cứng chuyên dụng, chẳng hạn như được sử dụng trong khai thác Bitcoin, có thể thực hiện lên tới 50 tỷ băm mỗi giây (tính đến đầu năm 2013. Đó là một mục tiêu di động khi phần cứng trở nên nhanh hơn).
Nếu bạn thực hiện 1.000 lần lặp PBKDF2 thì điều đó sẽ cắt giảm cuộc tấn công xuống từ 50 tỷ mỗi giây xuống còn 50 triệu mỗi giây. 10.000 lần lặp sẽ là 5 triệu mỗi giây.
Một máy chủ web điển hình tuy nhiên sẽ không ở bất kỳ nơi nào gần nhanh như vậy. Nó sẽ là số nhiều hơn chậm hơn cho bạn. Bạn cần thực hiện một số thử nghiệm trên máy chủ sản xuất của riêng bạn và có thể tìm thấy 10.000 lần lặp lại quá chậm.
Vì vậy, nó không thực sự về cách nhanh chóng PBKDF2 có thể được brute buộc, đó là về nhanh máy chủ của bạn có thể xác minh một mật khẩu PBKDF2. Bạn cần phải quyết định bao lâu bạn nghĩ rằng nó nên mất (nửa giây? Một phần mười của một giây? Một phần trăm của một giây?) Và sau đó điều chỉnh số lượng vòng PBKDF2 cho phù hợp với điều đó.
Đồng thời xem xét sức mạnh của mật khẩu mà khách hàng của bạn sử dụng. Nếu tất cả đều có mật khẩu tuyệt vời, thì thực sự không quan trọng bạn sử dụng hệ thống băm nào. Nếu tất cả chúng đều sử dụng mật khẩu khủng khiếp thì PBKDF2 không đủ tốt để bảo vệ chúng - bạn sẽ cần phải kỳ lạ hơn như phần mềm băm mà Apple sử dụng trong iPhone để thử và biến số có 4 chữ số thành thứ gì đó có ít nhất một số bảo mật (về cơ bản chúng buộc tất cả băm phải được thực hiện bởi một chip phần cứng chuyên dụng, cố tình làm chậm. di chuyển dữ liệu đến bất kỳ phần cứng nào khác và không thể giải mã được).
Giả sử mật khẩu không có trong từ điển (hầu hết mật khẩu), thì cường độ của mật khẩu được tính bằng cách nhân số ký tự có thể có trong bảng chữ cái với chính một ký tự cho mỗi ký tự. Vì vậy, nếu một mật khẩu có chữ cái (26 ký tự chữ cái) và chữ số (10 ký tự khác) thì bạn có một bảng chữ cái 36 ký tự, và nếu nó dài 6 ký tự, bạn nhân nó 6 lần.
Vì vậy, mật khẩu gồm 6 chữ số và chữ số là 36 * 36 * 36 * 36 * 36 * 36 hoặc nếu bạn thích: 36^6. Điều đó cung cấp cho bạn khoảng 2,1 tỷ mật khẩu có thể ... nói chung chúng tôi giả định rằng hacker sẽ tìm thấy mật khẩu thực sự khoảng một nửa thông qua, vì vậy hãy gọi nó là 1 tỷ.
Nếu bạn đang sử dụng PBKDF2 và có 1.000 lần lặp, thì một hacker có phần cứng chuyên dụng sẽ đoán 1 tỷ mật khẩu trong khoảng 20 giây. Đó không phải là bảo mật tốt lắm.
Bạn có thể cải thiện bảo mật bằng cách sử dụng nhiều vòng PBKDF2 hơn (làm chậm trang web của bạn xuống) hoặc bằng cách thuyết phục người dùng của bạn có mật khẩu tốt hơn. Chỉ đơn giản bằng cách chuyển sang 7 chữ số thay vì 6, hoặc bằng cách thêm chữ hoa hoặc thậm chí là ký hiệu, chúng sẽ cải thiện đáng kể tính bảo mật của chúng.
Wolfram Alpha hữu ích khi thực hiện phép tính: ((36^6)/50 million) seconds
trong đó 36 là kích thước của bảng chữ cái và 6 là độ dài của mật khẩu và 50 triệu là số lần đoán mỗi giây mà hacker có thể sử dụng (50 triệu là kẻ tấn công nghiêm trọng sẽ theo sau PBKDF2 với 1.000 viên đạn).
Có bao nhiêu mật khẩu trong cơ sở dữ liệu của bạn? Nếu nó mất 20 giây để crack mật khẩu cá nhân, tôi sẽ 30 ngày của toán học hoặc 30 năm? Nó phụ thuộc vào số lượng khách hàng bạn có.
Nó được cho là một trong những khó khăn nhất nếu không phải là khó nhất để gây sức mạnh vũ phu. (* và nó được thiết kế như vậy *) Tôi không có con số tiện dụng, mặc dù. – ZJR
Related http://security.stackexchange.com/questions/12114/aes-encryption-choice-of-password – CodesInChaos
@ZJR PBKDF2 rẻ hơn nhiều so với sức mạnh vũ phu hơn là mã hóa. – CodesInChaos