วิธีการสร้างแฮชฮาร์ดแวร์ที่ไม่เหมือนใคร


6

ฉันอยากรู้ว่ามีวิธีใดบ้างที่เราสามารถสร้างแฮชฮาร์ดแวร์ที่เป็นเอกลักษณ์ของเครื่องเฉพาะได้ hash ควรไม่ซ้ำกันกับเครื่องและ hash ควรแตกต่างกันแม้ว่าเครื่องทั้งสองจะมีการกำหนดค่าเดียวกัน เป็นไปได้ไหม?


1
คุณต้องการสิ่งนี้เพื่ออะไร
starblue

คำตอบ:


4

คุณสามารถใช้ที่อยู่ MAC ของeth0(สมมติว่ามีอยู่ในแต่ละเครื่อง) คุณสามารถทำได้ด้วยตัวเอง (อาจมีวิธีที่ง่ายกว่า) ด้วยวิธีนี้:

ifconfig eth0 | grep HWaddr | awk '{ print $NF}' | sed 's/://g'

6cf04954aaaaที่จะให้สิ่งที่ต้องการ

สิ่งเหล่านี้ควรจะไม่เหมือนใคร แต่ก็ไม่เสมอไป หากฮาร์ดแวร์เครือข่ายของคุณมาจากผู้ผลิตรายเดียวกันคุณอาจพบว่ามีครอสโอเวอร์บางส่วนดังนั้นควรระมัดระวังด้วย


ความล้มเหลวนั้นคุณสามารถสร้างสตริงที่ไม่ซ้ำกันของคุณและเก็บไว้ใน/etc/computer-id(หรือเส้นทางอื่นที่คุณเลือก)

uuidgen -r

จะสร้างสิ่งที่สุ่มที่สุดเท่าที่จะทำได้เช่น: 52a85807-35fe-409e-8983-87eb58c02ece

uuidgen -t

ใช้เวลาและeth0MAC ของการทำสิ่งที่ชอบ:eb8280dc-b5ec-11e0-90dd-6cf04954aaaa

ทั้งสองมีความเป็นเอกลักษณ์ แต่พอ ๆ กับการสุ่มอะไรก็มีความเป็นไปได้ของการปะทะกันอยู่เสมอ เก็บรายการส่วนกลางเพื่อหลีกเลี่ยงปัญหาเช่นนี้


แม้ว่าในกรณีของ UUID ที่สร้างแบบสุ่มความน่าจะเป็นของการปะทะนั้นมีน้อยมากจนไม่เคยเกิดขึ้นในช่วงชีวิตของจักรวาล (ยกเว้นข้อบกพร่องหลัก ๆ

@OrbWeaver นั่นคือสิ่งที่เกี่ยวกับการสุ่ม ... มันไม่ได้เรียงตามลำดับ การปะทะกันอาจเกิดขึ้นในร้อยปี แต่อาจเกิดขึ้นในระยะต่อไป
Oli

ใช่มันอาจเกิดขึ้นได้ แต่ความน่าจะเป็นนั้นต่ำจนเป็นศูนย์อย่างมีประสิทธิภาพสำหรับการใช้งานจริงทั้งหมด จุดทั้งหมดของการใช้ UUIDs คือสามารถสร้างได้โดยไม่มีรายการที่มีสิทธิ์กลาง หากคุณกำลังจะใช้สิ่งนี้คุณก็อาจจัดสรรตัวเลขตามลำดับจาก 1 ไม่ว่าจะเกี่ยวข้องหรือไม่ก็ตามขึ้นอยู่กับข้อกำหนดของผู้ถาม: เขาอาจต้องการแฮชที่กำหนดโดยอิงจากฮาร์ดแวร์แทนที่จะสร้างแบบสุ่ม

3

ทางออกที่ง่ายที่สุดที่ฉันคิดได้คือ:

sudo dmidecode -s system-uuid

ตามหน้าคู่มือของdmidecodeข้อมูลนี้จะถูกเรียกคืนจาก Desktop Management Interface ซึ่งมีส่วนเกี่ยวข้องกับ BIOS มันไม่สามารถเปลี่ยนแปลงได้

ฉันทดสอบคำสั่งนี้บนเครื่องสองเครื่องที่มีฮาร์ดแวร์เดียวกันและผลลัพธ์ต่างจากที่คาดไว้จากชื่อsystem-uuidดังนั้นจึงสามารถใช้เป็นแฮชฮาร์ดแวร์ที่ไม่ซ้ำกันได้


1
นี้สามารถสั่นคลอนในทำนองเดียวกันเป็นที่อยู่ MAC ด้วยตัวเอง ระบบ -UUID ของฉันคือ00000000-0000-0000-0000-6CF04954AAAA(ศูนย์จำนวนมากตามด้วยที่อยู่ MAC ของฉัน) ฉันแน่ใจว่าผู้ผลิตบางรายทำสิ่งนี้ได้ดีกว่า แต่ Gigabyte ดูเหมือนจะโง่เง่าตลอดเวลา หากพวกเขาทำสิ่งนี้กับเมนบอร์ดทั้งหมดมีเพียง 17 ล้านชุดเท่านั้นและฉันสามารถทำได้ แต่รับประกันได้ว่าพวกเขาทำมาเธอร์บอร์ดมากกว่านั้น - จะมีการปะทะกันที่ไหนสักแห่ง
Oli

@Oli: ตอนนี้คุณพูดถึงมันในระบบของฉันมันเป็นเช่น12345678-ABCD-0000-0000-000000000000(MAC ตามด้วยศูนย์)
Lekensteyn

คุณคงไม่คิดว่าจะสร้างหมายเลข 128- บิต (ไม่ใช่แม้แต่นั้นเพราะพวกเขาได้รับสองไบต์แรกที่สร้างขึ้นสำหรับพวกเขาเป็นรหัสการผลิต) จะไม่ยากเกินไป ... พวกเขาสามารถทำได้ตามลำดับ ไม่อยากเชื่อเลยว่าคนขี้เกียจบางคน
Oli

สำหรับผู้ที่สงสัย: การเปลี่ยนที่อยู่ MAC จะไม่ส่งผลกระทบsystem-uuidใด ๆ
Lekensteyn

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