สำหรับผู้ที่มาที่นี่เพื่อค้นหาข้อมูลเกี่ยวกับ Tomcat 8.0.15 หรือใหม่กว่าคุณควรใช้ SecretKeyCredentialHandler กับ PBKDF2 แทนเนื่องจากมีความปลอดภัยมากกว่า
ตัวอย่างเช่นใน server.xml ของคุณ:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
ด้วยการกำหนดค่านี้ใช้สิ่งต่อไปนี้เพื่อสร้างเอาต์พุตที่แฮชจากรหัสผ่านของคุณ:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
ด้วยการนับซ้ำและขนาดเกลือ (เป็นไบต์) ที่คุณเลือก โปรดทราบว่าจำเป็นที่จะต้องมีความยาวกุญแจสำคัญที่จะเป็นเช่นเดียวกับที่กำหนดไว้ใน server.xml เนื่องจากข้อผิดพลาด 60446 มันควรจะได้รับการแก้ไขในไม่ช้าต้นน้ำ
คำเตือน! โปรดตรวจสอบให้แน่ใจว่ารหัสผ่านของคุณไม่ได้รับการบันทึกในประวัติคำสั่งเชลล์ของคุณ ใน bash สามารถทำได้โดยนำหน้าคำสั่งด้วยช่องว่าง
คำสั่งจะส่งออกรหัสผ่านของคุณในรูปแบบข้อความล้วนและการแสดงเลขฐานสิบหกของข้อมูลรับรองที่ได้ซึ่งคุณควรใช้เป็นแอตทริบิวต์รหัสผ่านของคุณใน tomcat-users.xml ของคุณ
เอกสารสำหรับองค์ประกอบ CredentialHandler สามารถพบได้ที่นี่ ค่าที่เป็นไปได้สำหรับแอตทริบิวต์อัลกอริทึมที่สามารถพบได้ที่นี่
"sha-1"
หรือ"sha-256"
ถ้ามันจะทำงาน