จัดกลุ่มตามสถานการณ์ ไม่ใช่ตามรูปแบบ
หมวดนี้ไม่ใช่ธีมมากเท่ากับเป็นลิ้นชักเก็บของ เครื่องมือในนั้นคือการแปลงเล็กๆ ที่คุณต้องการขณะที่บางอย่างอื่นเป็นงานจริง ดังนั้นมันถูกจัดไว้ ตามสถานการณ์ที่คุณอยู่เมื่อคุณเอื้อมมือไปหยิบมัน
“มีสตริงประหลาดในล็อกนี้และฉันไม่รู้ว่ามันคืออะไร”
หากมันดูเหมือน 550e8400-e29b-41d4-a716-446655440000 ให้ใช้
ตัวถอดรหัส UUID มันจะบอกเวอร์ชันของคุณ และสำหรับ v1,
v6 และ v7 จะบอกเวลาที่มันถูกสร้างขึ้นด้วย หากมันดูเหมือน SGVsbG8= หรือลงท้าย
ด้วย == นั่นคือ Base64 —
ถอดรหัสมัน หากมันเป็นตัวเลขสิบหลักเปล่าๆ
ที่ขึ้นต้นด้วย 17 นั่นคือ
การประทับเวลา Unix จากช่วงเวลาใกล้เคียงกับตอนนี้
“ฉันต้องการ ID” เครื่องสร้าง UUID ทำได้ทั้ง v1 และ v3 ถึง v7 และจะสร้างได้เป็นพันๆ ตัวในครั้งเดียวสำหรับการเติมข้อมูลฐานข้อมูลทดสอบ
“การประทับเวลานี้ผิดเพี้ยนไปพันเท่า” วินาทีหรือ มิลลิวินาที — ตัวแปลงการประทับเวลา รองรับ ทั้งสองแบบและแสดงให้คุณเห็นว่าคุณให้แบบไหนไป
“ฉันต้องการ data URI นี้เป็นไฟล์จริง” หรือกลับกัน: Base64 เป็นรูปภาพ
“สีนั้นคือสีอะไรกันแน่?” เครื่องเลือกสี สำหรับแปลงระหว่างสัญกรณ์ เครื่องเลือกสีจากภาพ สำหรับอ่านค่าออกมา จากภาพหน้าจอหรือ mockup
“สิ่งนี้ต้องเป็น snake_case แต่มันเป็น camelCase” ตัวแปลงตัวพิมพ์
“0xDEADBEEF คือเลขฐานสิบเท่าไหร่ และจะเกิดอะไรขึ้นถ้ามันมีเครื่องหมาย?” ตัวแปลงระบบเลขฐาน ซึ่งต่างจาก ตัวอื่นๆ ตรงที่รองรับจำนวนลบและ two’s complement
ตัวระบุรั่วไหลข้อมูลมากกว่าที่คนคาดคิด
สิ่งที่ควรพูดในภาพรวมตรงนี้ เพราะไม่มีหน้าเครื่องมือใดเครื่องมือหนึ่งเป็นเจ้าของ เรื่องนี้: รูปแบบเหล่านี้หลายแบบมีข้อมูลที่คุณไม่ได้ตั้งใจจะเผยแพร่
UUID v1 ฝังการประทับเวลาและที่อยู่ MAC ของเครื่อง นั่นคือการออกแบบ เดิม — รับประกันความเป็นเอกลักษณ์ด้วย “เครื่องนี้ ในช่วงเวลานี้” มันยัง หมายความด้วยว่า UUID v1 ใน URL สาธารณะจะบอกใครก็ตามที่สนใจว่า บันทึกนั้นถูกสร้างขึ้นเมื่อไหร่แน่นอน และให้ตัวระบุที่คงที่สำหรับเซิร์ฟเวอร์ที่สร้าง มันขึ้นมา คุณสามารถยืนยันเรื่องนี้ได้ด้วยตัวเองโดยการวางค่าหนึ่งลงใน ตัวถอดรหัส
UUID v7 ก็ฝังการประทับเวลา Unix เช่นกัน โดยตั้งใจ เพราะการเรียงลำดับตาม ID และการเรียงลำดับตามเวลาสร้างที่เป็นสิ่งเดียวกันมีประโยชน์อย่างมากสำหรับ ตำแหน่งดัชนีฐานข้อมูล ต้นทุนคือการเปิดเผยข้อมูลแบบเดียวกัน: ID ของ v7 เรียงลำดับ กัน ดังนั้นการเปิดเผยต่อสาธารณะจึงเผยเวลาที่สร้างและทำให้ใครสักคนประเมินได้ว่า คุณสร้างบันทึกกี่รายการต่อชั่วโมงโดยการสังเกตสองรายการ
v4 คือแบบที่ไม่เปิดเผยอะไรเลย — 122 บิตของความสุ่มและไม่มีโครงสร้าง นั่นคือเหตุผลที่มันยังคงเป็นค่าเริ่มต้นสำหรับสิ่งใดก็ตามที่ผู้ใช้เห็น และเหตุผลที่ “ใช้ v7 สำหรับคีย์หลัก v4 สำหรับตัวระบุสาธารณะ” เป็นกฎที่สมเหตุสมผล สำหรับตารางเดียวกัน
Base64 เปิดเผยทุกอย่าง ทันที ให้กับใครก็ตาม มันไม่ใช่การปิดบัง Kubernetes secret ถูกเข้ารหัสด้วย Base64 เพื่อให้ค่าไบนารีอยู่รอดใน YAML ได้ ไม่ใช่เพื่อ ปกป้องมัน
ทุกอย่างในหน้านี้ทำงานในเครื่อง ซึ่งสำหรับหมวดนี้สำคัญมากกว่า หมวดอื่น: ตัวระบุการผลิต โทเค็น และเศษล็อก เป็นสิ่งประเภทที่ ไม่ควรถูกวางลงในเซิร์ฟเวอร์ของคนอื่นเพื่อให้ถูกถอดรหัสอย่างยิ่ง