Đối với bất kỳ ai đến đây để tìm kiếm thông tin về Tomcat 8.0.15 hoặc mới hơn, có lẽ bạn nên sử dụng SecretKeyCredentialHandler với PBKDF2, vì nó an toàn hơn (nghĩa là khó bẻ khóa hơn) so với thông báo đơn giản.
Ví dụ: trong máy chủ của bạn:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
Với cấu hình này, sử dụng cách sau để tạo đầu ra băm từ mật khẩu của bạn:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
với số lần lặp và kích thước muối (tính bằng byte) bạn chọn. Lưu ý rằng độ dài khóa cần phải giống như được xác định trong server.xml vì lỗi 60446 . Nó sẽ được sửa chữa khá sớm ngược dòng mặc dù.
CẢNH BÁO! Vui lòng đảm bảo mật khẩu của bạn không được lưu trong lịch sử lệnh của shell. Trong bash, điều này đạt được bằng cách đặt trước lệnh với một khoảng trống.
Lệnh sẽ xuất mật khẩu của bạn dưới dạng văn bản thuần túy và biểu diễn hex của thông tin đăng nhập kết quả, mà bạn nên sử dụng làm thuộc tính mật khẩu của mình trong tomcat-users.xml.
Tài liệu cho thành phần CredentialHandler có thể được tìm thấy ở đây . Các giá trị có thể cho thuộc tính thuật toán có thể được tìm thấy ở đây .
"sha-1"
hoặc"sha-256"
, nếu nó sẽ làm việc.