0Pricing
Cryptology Academy · บทเรียน

เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ

เรียนรู้ว่าเหตุใดค่าแฮช กุญแจ และข้อความเข้ารหัสลับจึงมักแสดงด้วยสัญกรณ์เลขฐานสิบหก

เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

เลขฐานสิบหกในฐานะฐาน 16

เลขฐานสิบหก (hex) เป็นระบบเลขฐาน 16 ที่ใช้ตัวเลข 0-9 และตัวอักษร A-F (หรือ a-f) เลขฐานสิบหกแต่ละหลักแทนค่าได้พอดี 4 บิต (นิบเบิล) เนื่องจาก 16 = 2^4

เลขฐานสิบหกเป็นภาษาสากลของข้อมูลไบนารีในการประมวลผล อักขระที่อยู่หน่วยความจำ ค่าไบต์ รหัสสี และผลลัพธ์จากการเข้ารหัสลับ ล้วนมักแสดงในรูปเลขฐานสิบหก

4 บิตต่อเลขฐานสิบหกหนึ่งหลัก

เนื่องจากเลขฐานสิบหกแต่ละหลักแทนค่าได้พอดี 4 บิต ไบต์ทุกไบต์ (8 บิต) จึงจับคู่กับเลขฐานสิบหกได้พอดี 2 หลัก ทำให้การแปลงระหว่างเลขฐานสองกับเลขฐานสิบหกทำได้ง่ายมาก เพียงแบ่งเลขฐานสองเป็นกลุ่มละ 4 บิตแล้วแปลงแต่ละกลุ่ม

ตัวอย่างเช่น ไบต์ 11001010 แบ่งเป็น 1100 (C) และ 1010 (A) จึงได้ค่าเลขฐานสิบหกเป็น CA ไม่ต้องคำนวณ เพียงแปลงโดยใช้ตารางค้นค่า

การแปลงเลขฐานสองเป็นเลขฐานสิบหก

หากต้องการแปลงเลขฐานสองเป็นเลขฐานสิบหก ให้จัดกลุ่มบิตกลุ่มละ 4 บิตจากขวาไปซ้าย แล้วแปลงแต่ละกลุ่ม: 0000=0, 0001=1, ..., 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F

ตัวอย่าง: 11111111 กลายเป็น 1111|1111 = FF = 255 ในฐานสิบ ส่วน 00000000 กลายเป็น 00 = 0 ในฐานสิบ และ 01001000 = 0100|1000 = 48 = รหัส ASCII ของ 'H'

เหตุใดเลขฐานสิบหกจึงกะทัดรัดสำหรับข้อมูลไบนารี

คีย์ขนาด 32 ไบต์เต็ม (256 บิต) จะต้องใช้เลขหนึ่งและศูนย์ 256 ตัวหากเขียนเป็นเลขฐานสอง แต่ในเลขฐานสิบหกจะใช้เพียง 64 อักขระ ส่วนในฐานสิบจะเป็นตัวเลขที่ยาวได้ถึง 78 หลัก

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

ผลลัพธ์ SHA-256 ในรูปเลขฐานสิบหก

SHA-256 สร้างค่าแฮชขนาด 256 บิต (32 ไบต์) เมื่อแสดงในรูปเลขฐานสิบหก จะมีอักขระเลขฐานสิบหกครบ 64 ตัวเสมอ ตัวอย่างเช่น ค่าแฮช SHA-256 ของ "hello" คือ 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824.

การนับ: อักขระเลขฐานสิบหก 64 ตัว × 4 บิต = 256 บิต ความยาวคงที่เป็นคุณสมบัติพื้นฐานของฟังก์ชันแฮช โดยไม่ขึ้นกับขนาดข้อมูลอินพุต

การแทนค่าคีย์ในรูปเลขฐานสิบหก

คีย์การเข้ารหัสลับโดยทั่วไปจะจัดเก็บและแสดงเป็นสตริงเลขฐานสิบหก คีย์ AES-128 มีขนาด 16 ไบต์ = อักขระเลขฐานสิบหก 32 ตัว ส่วนคีย์ AES-256 มีขนาด 32 ไบต์ = อักขระเลขฐานสิบหก 64 ตัว

เมื่อกำหนดค่า TLS หรือเข้ารหัสลับไฟล์ คุณมักต้องระบุคีย์เป็นสตริงเลขฐานสิบหก เครื่องมืออย่าง OpenSSL ไลบรารีการเข้ารหัสลับของ Python และกรอบงานการเข้ารหัสลับส่วนใหญ่รองรับและสร้างคีย์ที่เข้ารหัสเป็นเลขฐานสิบหก

สัญกรณ์เวกเตอร์เริ่มต้นและนันซ์

เวกเตอร์เริ่มต้น (IV) และนันซ์ก็แสดงในรูปเลขฐานสิบหกเช่นกัน IV มาตรฐานของ AES-CBC มีขนาด 16 ไบต์ = อักขระเลขฐานสิบหก 32 ตัว ส่วน AES-GCM มักใช้นันซ์ขนาด 12 ไบต์ = อักขระเลขฐานสิบหก 24 ตัว

สัญกรณ์เลขฐานสิบหกช่วยให้ตรวจสอบและเปรียบเทียบ IV ด้วยสายตาได้ง่าย ตรวจสอบว่าข้อความสองข้อความใช้นันซ์ต่างกัน และแก้ไขข้อผิดพลาดของโพรโทคอลการเข้ารหัสลับด้วยตนเองระหว่างการพัฒนาได้

รูปแบบเอาต์พุตเลขฐานสิบหกของ OpenSSL

OpenSSL แสดงผลแฮชและคีย์ในรูปแบบเฉพาะ ได้แก่ เลขฐานสิบหกตัวพิมพ์เล็ก โดยมีเครื่องหมายทวิภาคคั่นระหว่างคู่ไบต์แต่ละคู่ ตัวอย่างเช่น ค่าแฮช MD5 จะแสดงเป็น "b9:4d:27:b9:93:4d:3e:08:a5:2e:52:d7:da:7d:ab:fa:c4:84:ef:e8"

รูปแบบที่คั่นด้วยเครื่องหมายทวิภาคทำให้มองเห็นไบต์แต่ละตัวแยกจากกันและเปรียบเทียบได้ง่ายขึ้น เครื่องมือแต่ละชนิดอาจแสดงเลขฐานสิบหกโดยไม่มีเครื่องหมายทวิภาคหรือใช้ตัวพิมพ์ใหญ่ แต่ไบต์พื้นฐานยังคงเหมือนกันทุกประการ

เลขฐานสิบหกเทียบกับ Base64 สำหรับข้อมูลใบรับรอง

ใบรับรอง X.509 จัดเก็บในรูปแบบ DER (ไบนารี) หรือรูปแบบ PEM (DER ที่เข้ารหัสด้วย Base64) เลขฐานสิบหกก็ใช้ได้เช่นกัน แต่ Base64 กระชับกว่าเลขฐานสิบหก 33% เนื่องจากอักขระ Base64 แต่ละตัวเข้ารหัสได้ 6 บิต ขณะที่เลขฐานสิบหกเข้ารหัสได้ 4 บิต

สำหรับออบเจ็กต์ขนาดใหญ่ เช่น ใบรับรองและไฟล์ที่เข้ารหัสลับ นิยมใช้ Base64 มากกว่า ส่วนค่าสั้น ๆ เช่น แฮช คีย์ IV และ MAC นิยมใช้เลขฐานสิบหก เพราะแสดงขอบเขตของไบต์ได้โดยตรง

การอ่านข้อมูลดัมป์เลขฐานสิบหก

ข้อมูลดัมป์เลขฐานสิบหกจะแสดงไฟล์หรือบริเวณหน่วยความจำทั้งในรูปไบต์เลขฐานสิบหกและอักขระ ASCII เรียงไว้เคียงข้างกัน คอลัมน์ด้านซ้ายแสดงเลขฐานสิบหก ส่วนด้านขวาแสดง ASCII ที่พิมพ์ได้ (ใช้จุดแทนไบต์ที่พิมพ์ไม่ได้)

การอ่านข้อมูลดัมป์เลขฐานสิบหกเป็นทักษะสำคัญสำหรับการแก้ไขข้อผิดพลาดในการเข้ารหัสลับ การตรวจสอบว่า IV เริ่มต้นที่ออฟเซ็ตที่ถูกต้อง คีย์มีความยาวถูกต้อง หรือคำนำหน้าข้อความเข้ารหัสลับตรงตามที่คาดไว้ ล้วนต้องอาศัยการอ่านข้อมูลดัมป์เลขฐานสิบหก

การเข้ารหัสเป็นเลขฐานสิบหกในส่วนหัวด้านความปลอดภัย

ส่วนหัวด้านความปลอดภัยของ HTTP และโทเค็นการเข้ารหัสลับมักใช้การเข้ารหัสเป็นเลขฐานสิบหก โทเค็น CSRF ตัวระบุเซสชัน และคีย์ API มักแสดงเป็นสตริงเลขฐานสิบหกที่มีความยาว 32-64 อักขระ

โทเค็น CSRF แบบสุ่มขนาด 128 บิต (16 ไบต์) ที่เข้ารหัสเป็นเลขฐานสิบหกจะมีความยาว 32 อักขระ ซึ่งตรวจสอบความถูกต้องได้ง่าย เพียงนับอักขระ ตรวจสอบว่ามีเฉพาะ 0-9 และ a-f และตรวจสอบว่าไม่มีอักขระเติมข้อมูล เพราะอักขระเติมข้อมูลจะบ่งชี้ว่าเป็น Base64 ไม่ใช่เลขฐานสิบหก

แบบทดสอบการแปลงเป็นเลขฐานสิบหก

ทดสอบความเข้าใจเกี่ยวกับการแทนค่าในระบบเลขฐานสิบหก

ประเด็นสำคัญ: เลขฐานสิบหกในวิทยาการเข้ารหัสลับ

เลขฐานสิบหกเข้ารหัสได้ 4 บิตต่ออักขระ ดังนั้น 1 ไบต์ = เลขฐานสิบหก 2 หลัก SHA-256 สร้างอักขระเลขฐานสิบหก 64 ตัว (256 บิต) คีย์ AES-128 มีอักขระเลขฐานสิบหก 32 ตัว และคีย์ AES-256 มีอักขระเลขฐานสิบหก 64 ตัว

เลขฐานสิบหกเป็นรูปแบบมาตรฐานสำหรับแฮชการเข้ารหัสลับ คีย์ IV และนันซ์ เพราะสะท้อนโครงสร้างไบต์ได้โดยตรง OpenSSL และเครื่องมือการเข้ารหัสลับส่วนใหญ่จะแสดงผลและรับค่าที่เข้ารหัสเป็นเลขฐานสิบหก

คำถามที่พบบ่อย

บทเรียน “เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ”

เรียนรู้ว่าเหตุใดค่าแฮช กุญแจ และข้อความเข้ารหัสลับจึงมักแสดงด้วยสัญกรณ์เลขฐานสิบหก คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเข้ารหัส Base64: ทำงานอย่างไร
  2. ASCII, Unicode และการแทนข้อความ
  3. เลขฐานสิบหกในผลลัพธ์การเข้ารหัสลับ
  4. การเข้ารหัสกับการเข้ารหัสลับและการทำแฮช
← กลับไปที่ Cryptology Academy