ตัวระบุรหัส
พบสตริงที่น่าสงสัยในโจทย์ CTF ไฟล์ล็อก หรือเอกสารเก่า แต่บอกไม่ได้ว่าเป็น Base64, hex, ไบนารี, มอร์ส หรืออย่างอื่นใช่ไหม วางข้อความลงไป แล้วตัวระบุจะตรวจชุดอักขระและโครงสร้างเพื่อจัดอันดับการเข้ารหัสและรหัสลับที่น่าจะเป็นมากที่สุด เป็นก้าวแรกที่ดีก่อนหันไปใช้ตัวถอดรหัสเฉพาะทาง
ตัวระบุรหัสทำงานอย่างไร
-
1
วางไซเฟอร์เท็กซ์
ความยาวเท่าใดก็ได้ สตริงที่สั้นมาก (< 20 ตัวอักษร) ให้สัญญาณอ่อนกว่า ข้อความที่ยาวขึ้นทำให้สามารถจำแนกประเภทได้ดีขึ้น
-
2
การวิเคราะห์ชุดอักขระ
การกระจายตัวอักษร ตัวเลข และสัญลักษณ์จะทำให้ตัวเลือกแคบลง (เลขฐานสิบหกทั้งหมด ตัวอักษรฐาน 64 ทั้งหมด ภาษาละตินตัวพิมพ์ใหญ่ทั้งหมด ฯลฯ)
-
3
การเทียบลายเซ็น
b$) จะถูกเทียบกับลายเซ็นที่รู้จัก
-
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 และการอ่านข้อมูลธุรกรรม
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Identificador de Cifrados [ES]
- Identyfikator szyfrów [PL]
- 暗号識別子 [JA]
- Identificador de Cifras [PT]
- Chifferidentifierare [SV]
- Nhận diện mật mã [VI]
- معرف التشفير [AR]
- Identificateur de chiffre [FR]
- Cipher-Identifikator [DE]
- Pengidentifikasi Cipher [ID]
- 암호 식별기 [KO]
- Cipher-identificatie [NL]
- Şifre Tanımlayıcı [TR]
- 密码类型识别器 [ZH]
- Cipher Identifier [EN]
- Identificatore di Cifrari [IT]
- Идентификатор шифрования [RU]