— ผลลัพธ์จะแสดงที่นี่ —
ไม่มี Bcrypt รวมอยู่ APR1-MD5 เติมเกลือและแนะนำ ส่วน SHA-1 ไม่เติมเกลือ ใช้กับระบบเก่าเท่านั้น
เกี่ยวกับเครื่องมือนี้
สร้างบรรทัดข้อมูลรับรอง .htpasswd (username:hash) ที่พร้อมวางสำหรับการยืนยันตัวตนแบบ HTTP Basic ของ Apache หรือ nginx ชื่อผู้ใช้ รหัสผ่าน และการแฮชทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณ — ไม่มีการอัปโหลดอะไร และไม่มี eval หรือไลบรารีภายนอก
รองรับสองอัลกอริทึม APR1-MD5 (รูปแบบ $apr1$ ของ Apache) ถูกทำขึ้นด้วย JavaScript ล้วน ๆ รวมทั้ง MD5 แบบครบในตัวและลูป crypt เติมเกลือ 1000 รอบเต็ม พร้อมเกลือสุ่ม 8 อักขระที่ดึงจาก crypto.getRandomValues SHA-1 ใช้ crypto.subtle.digest ที่มีในเบราว์เซอร์ เข้ารหัส base64 และนำหน้าด้วย {SHA} ตรงกับเอาต์พุตของ htpasswd -s Bcrypt ไม่ได้รวมไว้โดยเจตนา เพราะ bcrypt แบบ JS ล้วนที่ถูกต้องและเร็วนั้นไม่สามารถทำได้จริงในฝั่งไคลเอ็นต์
พิมพ์ชื่อผู้ใช้และรหัสผ่าน เลือกอัลกอริทึม แล้วคัดลอกบรรทัดที่ได้ลงในไฟล์ .htpasswd ของคุณ ใช้ เกลือใหม่ เพื่อสุ่มเกลือ APR1 ใหม่ (การบันทึกแต่ละครั้งสร้างแฮชที่ต่างกันสำหรับรหัสผ่านเดียวกัน ซึ่งเป็นเรื่องที่คาดหมายและถูกต้อง)
คำถามที่พบบ่อย
รหัสผ่านของฉันถูกส่งไปที่ไหนหรือเปล่า?
ไม่ การแฮชทั้งหมดทำงานในเบราว์เซอร์ของคุณโดยใช้ MD5 ในตัวสำหรับ APR1 และ crypto.subtle ที่มีมาให้สำหรับ SHA-1 ไม่มีอะไรถูกส่งและไม่มี eval
ฉันควรเลือกอัลกอริทึมไหน?
APR1-MD5 ($apr1$) เป็นค่าเริ่มต้นที่แนะนำของ Apache และเติมเกลือ จึงเป็นตัวที่ปลอดภัยกว่าในสองตัวนี้ SHA-1 ({SHA}) ไม่เติมเกลือ และมีประโยชน์หลัก ๆ สำหรับการตั้งค่าแบบเก่าหรือความเข้ากันได้กับ nginx
ทำไมแฮช APR1 ถึงเปลี่ยนทุกครั้ง?
APR1 ใช้เกลือสุ่ม 8 อักขระ ดังนั้นรหัสผ่านเดียวกันจึงสร้างแฮชที่ต่างกันทุกครั้ง นี่เป็นการออกแบบ Apache อ่านเกลือกลับออกมาจากแฮชที่เก็บไว้เมื่อตรวจสอบการล็อกอิน
ทำไมไม่มี bcrypt ให้เลือก?
Bcrypt ถูกยกเว้นโดยเจตนา bcrypt แบบ JavaScript ล้วนที่ถูกต้องจะมีขนาดใหญ่และช้าในเบราว์เซอร์ ดังนั้นเครื่องมือนี้จึงจัดส่งโหมด APR1-MD5 และ SHA-1 ที่เชื่อถือได้และทำงานออฟไลน์แทน
เครื่องมือเพิ่มเติม