ทำไม 'mkpasswd -m sha-512' ให้ผลลัพธ์ที่แตกต่างกันทุกครั้งที่ถูกเรียก?


11

ฉันใช้ฟังก์ชันนี้เพื่อสร้างรหัสผ่านในไฟล์เงา

$ mkpasswd -m sha-512 password
$6$o50n4EfNOBzfs$K5l5AcOI5e0I9n2df0LmR11OLSPKSVM6AGBOnWVfDDfMubb46MrAj0zehdLNEoYzD2fj5q4XUdDwexj/dWLHy/
$ mkpasswd -m sha-512 password
$6$ADmDOhDpW$gsYQuiKPpV1ewaUpRq2VGAvrcocffLQ8XGF94e6LNLZfKIjy6Ku.cZoR/5exeCi1ESjPB9TRM6HxCiY5BCNCV0
$ mkpasswd -m sha-512 password
$6$Efj1agaI$HGkny3q1OTYT4KREh18gueHJae/3Bvil0iOEhfXj8bD.qy9Lg2UIQJMuBcq0XtG3xzueK.7cp0GfKr7tEo5YI/
$ mkpasswd -m sha-512 password
$6$zdVPlCPai4Y$x3CBvlP99xZXZcr4PTiE..YLpZx39h5OHDxqazd9wFLImPuwsXF0M6KmqLzlCCrnQhI2lmEPdCzfmHA/fDiOz.

มันทำให้ฉันสงสัยว่าค่าเอาต์พุตทำงานเป็นรหัสผ่านอย่างไร



2
เอาต์พุตของคำสั่งเป็นทั้งเกลือ (สุ่ม) และแฮชของรหัสผ่าน + เกลือ เนื่องจากเกลือเป็นแบบสุ่มผลผลิตจะแตกต่างกันเสมอ

คำตอบ:


20

หากคุณตรวจสอบ manpage ด้วย "man mkpasswd" คุณจะเห็นว่าคำสั่งนั้นยังยอมรับพารามิเตอร์ทางเลือก -S, --salt=STRING หากคุณไม่ใช้มันจะใช้ค่าเกลือแบบสุ่มดังนั้นค่ารหัสผ่านที่เข้ารหัสจะแตกต่างกัน

ถ้าคุณให้เกลือ

mkpasswd -m sha-512 password -s "11223344"
$6$11223344$YzaRt.fnidpXmKw.Dl20htfOrJ8X2Yx3V.h5zUlhlN2SdczempQmQcDcMYd6mHiXlaMqyGt200zDwuZiC8ZZw1

คุณจะได้รับผลลัพธ์เดียวกันเสมอ

โดยวิธีการที่คุณสามารถดูค่าเกลือที่จุดเริ่มต้นของสตริงการส่งออก: มันเป็นค่าระหว่าง$ตัวอักษรและ 8 ถึง 16 ตัวอักษร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.