ตัวระบุรหัส

พบสตริงที่น่าสงสัยในโจทย์ CTF ไฟล์ล็อก หรือเอกสารเก่า แต่บอกไม่ได้ว่าเป็น Base64, hex, ไบนารี, มอร์ส หรืออย่างอื่นใช่ไหม วางข้อความลงไป แล้วตัวระบุจะตรวจชุดอักขระและโครงสร้างเพื่อจัดอันดับการเข้ารหัสและรหัสลับที่น่าจะเป็นมากที่สุด เป็นก้าวแรกที่ดีก่อนหันไปใช้ตัวถอดรหัสเฉพาะทาง

ตัวระบุรหัสทำงานอย่างไร

  1. 1

    วางไซเฟอร์เท็กซ์

    ความยาวเท่าใดก็ได้ สตริงที่สั้นมาก (< 20 ตัวอักษร) ให้สัญญาณอ่อนกว่า ข้อความที่ยาวขึ้นทำให้สามารถจำแนกประเภทได้ดีขึ้น

  2. 2

    การวิเคราะห์ชุดอักขระ

    การกระจายตัวอักษร ตัวเลข และสัญลักษณ์จะทำให้ตัวเลือกแคบลง (เลขฐานสิบหกทั้งหมด ตัวอักษรฐาน 64 ทั้งหมด ภาษาละตินตัวพิมพ์ใหญ่ทั้งหมด ฯลฯ)

  3. 3

    การเทียบลายเซ็น

    b$) จะถูกเทียบกับลายเซ็นที่รู้จัก

  4. 4

    ผลการคาดเดาแบบจัดอันดับ

    ตัวเลือกที่ตรงทั้งหมดจะถูกจัดอันดับตามความเชื่อมั่นและแสดงเป็นเปอร์เซ็นต์ เพื่อให้คุณรู้ว่าควรลองตัวถอดรหัสตัวไหนก่อน

ฮิวริสติกที่ใช้ตรวจจับ

เบาะแส รหัสลับ / การเข้ารหัสที่น่าจะเป็น
มีเฉพาะ A-Z a-z 0-9 + / = และความยาวเป็นพหุคูณของ 4 Base64
มีเฉพาะ 0-9 a-f และความยาวเป็นเลขคู่ เลขฐานสิบหก (hex)
มีเฉพาะ 0-1 และมี 8 หลักขึ้นไป ไบนารี
มีเฉพาะจุด ขีดกลาง เครื่องหมายทับ และช่องว่าง รหัสมอร์ส
มีเฉพาะอักษรละตินตัวพิมพ์ใหญ่ 5 ตัวขึ้นไป ซีซาร์หรือรหัสแทนที่
อักษรละติน 20 ตัวขึ้นไป ไม่มีช่องว่าง รหัสแทนที่แบบ monoalphabetic
อักษรละตินตัวพิมพ์ใหญ่และเล็กผสม ข้อความธรรมดา ไม่น่าใช่รหัสลับ
สามส่วนคั่นด้วยจุด ขึ้นต้นด้วย eyJ โทเค็น JWT
ขึ้นต้นด้วย $2a$, $2b$ หรือ $2y$ แฮช bcrypt
อักขระ hex 32 ตัวพอดี แฮช MD5
อักขระ hex 40 ตัวพอดี แฮช SHA-1
อักขระ hex 64 ตัวพอดี แฮช SHA-256

สัญญาณอื่นนอกเหนือจากชุดอักขระ

  • Base64: บล็อกละ 4 ตัวอักษร มี = เติมท้าย และมี + กับ /
  • ซีซาร์หรือการแทนที่: อักษรละตินตัวพิมพ์ใหญ่ ไม่มีตัวเลข ความถี่เหมือนข้อความธรรมดา เพียงแค่ถูกเลื่อน
  • มอร์ส: มีเฉพาะจุด ขีดกลาง เครื่องหมายทับ และช่องว่าง
  • JWT: สามส่วนคั่นด้วยจุด ปกติขึ้นต้นด้วย eyJ
  • แฮช (MD5/SHA): hex ความยาวคงที่ (32 อักขระสำหรับ MD5, 40 สำหรับ SHA-1, 64 สำหรับ SHA-256) ย้อนกลับไม่ได้ ตัวระบุจะแจ้งไว้เพื่อให้คุณไม่เสียเวลาพยายาม “ถอดรหัส”
  • ไบนารี: ชุด 0 และ 1 ยาวๆ มักจัดกลุ่มละ 8 ตัว

ข้อจำกัดของการระบุรหัสอัตโนมัติ

  • อินพุตสั้น (<10 อักขระ): ความเชื่อมั่นต่ำในทุกตัวเลือก อาจเป็นอะไรก็ได้
  • XOR แบบกำหนดเองกับ one-time pad: แยกไม่ออกจากข้อมูลสุ่มหากไม่มีคีย์ ตัวระบุจะไม่คืนผลลัพธ์ที่ตรงกัน
  • การเข้ารหัสหลายชั้น: กลเม็ด CTF ที่พบบ่อยคือ Base64 → กลับลำดับ → ซีซาร์ → hex ให้แกะออกทีละชั้น
  • ภาษาต้นฉบับที่ไม่ใช่ภาษาอังกฤษ: การตรวจอักษรละตินยังคงใช้ได้ แต่ “ข้อความธรรมดา” เป็นเพียงการเดา ตัวระบุไม่ตรวจจับภาษา

การให้คะแนนความเชื่อมั่น

ตัวเลือกแต่ละรายการมีความเชื่อมั่นคงที่ตามความเฉพาะเจาะจงของลายเซ็น มากกว่า 80%: น่าจะใช่ 50-80%: มีความเป็นไปได้ ต่ำกว่า 50%: โอกาสน้อย ผลลัพธ์ตรงหลายรายการมักหมายถึงอินพุตสั้นเกินไปหรือเป็นรหัสแบบผสม

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

เทคนิคการระบุรหัสทุกวิธีอาศัยความสม่ำเสมอทางสถิติ และสถิติจำเป็นต้องมีข้อมูลเพียงพอจึงจะเชื่อถือได้ ต่ำกว่า 20 อักขระ รหัสหลายแบบดูแทบไม่ต่างกัน ส่วน 50 อักขระขึ้นไปจะให้สัญญาณที่ชัดเจน

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

ตรวจสอบชุดอักขระก่อน (มีตัวอักษร/สัญลักษณ์ใดปรากฏ) จากนั้นดูความยาวและโครงสร้าง หากยังไม่ชัดเจน ให้ลองตัวถอดรหัสที่เป็นผู้ต้องสงสัยประจำ (Base64, hex, Caesar) ทีละตัว ในการแข่ง CTF การวิเคราะห์ความถี่บวกการเดามักถอดได้ภายในไม่กี่ครั้ง

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

เครื่องมือที่เกี่ยวข้อง

ตัวสร้าง HMAC

สร้างลายเซ็น HMAC (SHA-256, SHA-384, SHA-512, SHA-1 และ MD5) จากข้อความและกุญแจลับ เพื่อใช้ในการยืนยันตัวตนผ่าน API และ Webhook

ตัวสร้าง JWT

สร้าง JWT ที่มีการลงนาม โดยกำหนดหัวข้อ (header) แบบกำหนดเอง สิทธิ์ของพารามิเตอร์ในเนื้อหา (payload claims) การลงนามด้วย HMAC หรือ RSA รวมถึงกำหนดระยะเวลาหมดอายุและกลุ่มผู้ใช้งานที่อนุญาต เพื่อใช้ในการทดสอบ

ตัวเข้ารหัสไฟล์ Base64

เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด

ตัวสร้างแฮช (Hash Generator)

สร้างค่าแฮช MD5, SHA-1, SHA-256, SHA-384, SHA-512 และ CRC32 จากข้อความ พร้อมค่าไดเจสต์พร้อมคัดลอกสำหรับเช็คซัมและการเปรียบเทียบ

เครื่องสร้างค่าแฮช MD5

คำนวณค่า checksum แบบ MD5 ของข้อความและไฟล์เพื่อยืนยันความสมบูรณ์ โดยผลลัพธ์จะตรงกับที่ได้จากฟังก์ชัน md5sum และ openssl dgst -md5

เครื่องแปลง Gwei เป็น Ether

แปลงจำนวนในหน่วย Gwei เป็น Ether (ETH) ด้วยทศนิยมสูงสุด 18 ตำแหน่ง มีประโยชน์สำหรับการประมาณค่าธรรมเนียม Gas และการอ่านข้อมูลธุรกรรม

เครื่องมือนี้มีให้บริการในภาษาอื่น