Trên thực tế, bạn không thể kiểm tra độ mạnh của bất kỳ mật khẩu nào đã được băm khi gửi cho bạn. Hàm băm là Hàm một chiều theo thiết kế, nghĩa là bạn không được phép đảo ngược hàm băm và nhận bất kỳ thông tin có ý nghĩa nào về đầu vào.
Tuy nhiên, bạn có thể dễ dàng xác minh rằng mật khẩu không thuộc danh sách ngắn các mật khẩu phổ biến, yếu, chẳng hạn như chuỗi trống "", "abc", "123", "password", v.v. Bạn làm điều đó đơn giản bằng cách lặp lại quy trình băm phía máy khách với phía máy chủ đầu vào này và kiểm tra sự bằng nhau. Độ dài của danh sách mật khẩu yếu như vậy sẽ bị giới hạn bởi các ràng buộc về hiệu suất. Vì hàm băm do khách hàng gửi đã được thêm muối, nên máy chủ sẽ phải xây dựng lại danh sách này cho mỗi lần đăng ký và thay đổi mật khẩu.
Do đó, phần lớn các kiểm tra độ chính xác của mật khẩu sẽ phải được thực hiện phía máy khách, với điều kiện là mật khẩu chỉ được gửi dưới dạng giá trị băm.
Ý tưởng của bạn về sơ đồ đăng ký kết hợp, trong đó mật khẩu được gửi dưới dạng văn bản thuần túy đến máy chủ chỉ để kiểm tra nhanh, không lý tưởng, như bạn đã đề cập. Để bắt đầu, bạn không thu được nhiều lợi ích khi yêu cầu khách hàng gửi mật khẩu văn bản thuần túy, thay vì một hàm băm đơn giản của cùng một mật khẩu. Hầu hết các kiểm tra độ chính xác được hưởng lợi từ việc có mật khẩu văn bản thuần túy, có thể dễ dàng được thực hiện phía máy khách. Phần lớn thử nghiệm phía máy chủ có lẽ nên được thực hiện tốt nhất dưới dạng tìm kiếm trong cơ sở dữ liệu băm của các mật khẩu yếu phổ biến (Bảng cầu vồng).
Điều đó nói rằng, không tìm thấy hàm băm trong bảng cơ sở dữ liệu như vậy, không đảm bảo rằng mật khẩu đủ mạnh.Mật khẩu dài là sự kết hợp của ba hoặc bốn từ ngẫu nhiên trong từ điển, có thể dễ dàng bị phát hiện nếu bạn có quyền truy cập vào mật khẩu văn bản thuần túy, nhưng có thể không phải là mục nhập ngay cả trong bảng cầu vồng khá lớn.