ตัวระบุการเข้ารหัส

วางค่าที่ต้องการระบุ

ระบุรูปแบบ

คุณขูดฐานข้อมูล dump มาและเห็นสตริงอย่าง $2y$10$... หรือ 5f4dcc3b5aa765d61d8327deb882cf99 และต้องรู้ว่ากำลังดูอะไรอยู่ก่อนเริ่มแคร็กหรือย้อนกลับ ตัวระบุนี้ใช้ฮิวริสติกด้านความยาว ชุดอักขระ โครงสร้าง และคำนำหน้า เพื่อเดาอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็นที่สุดเบื้องหลังตัวอย่างไซเฟอร์เท็กซ์

วิธีระบุไซเฟอร์เท็กซ์

  1. 1

    วางตัวอย่าง

    แฮชเดียว บล็อกไซเฟอร์เท็กซ์ โทเค็น หรือสตริงที่เข้ารหัส

  2. 2

    ดูรูปแบบที่ตรงกัน

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

  3. 3

    ตรวจสอบไขว้

    ถ้ามีหลายรูปแบบตรงกัน ให้ใช้ตัวแคร็กแฮชหรือตัวถอดรหัสเพื่อยืนยันว่ารูปแบบใดถูกต้อง

  4. 4

    สังเกตความไม่แน่นอน

    การระบุจากตัวอย่างเพียงอย่างเดียวแทบไม่ชี้ขาด ถ้าไม่มีอะไรตรงกัน เครื่องมือจะแจ้งให้ทราบ

รูปแบบที่ตัวระบุรู้จัก

แฮชแบบ hex ระบุจากความยาว (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก็ได้):

ความยาว (อักขระ hex) น่าจะเป็นที่สุด
8 CRC32 หรือ checksum ขนาด 32 บิตแบบอื่น
32 MD5, MD4 หรือ NTLM
40 SHA-1 หรือ RIPEMD-160
56 SHA-224 หรือ SHA3-224
64 SHA-256 หรือ SHA3-256
96 SHA-384 หรือ SHA3-384
128 SHA-512 หรือ SHA3-512

ตัวอย่างเช่น d63dc919e201d7bc4c825630d2cf25fdc93d4b2f0d46706d29038d01 มีความยาว 56 อักขระ ซึ่งเป็นแฮช SHA-224 ของคำว่า “password”

แฮชรหัสผ่าน ระบุจากคำนำหน้าและโครงสร้าง:

  • $2a$ $2b$ $2y$: bcrypt โดยอ่านค่า cost factor จากคำนำหน้า
  • $1$: md5crypt ส่วน $apr1$: Apache MD5 (htpasswd)
  • $5$ และ $6$: sha256crypt และ sha512crypt
  • $y$: yescrypt ส่วน $7$ และ $scrypt$: scrypt
  • $argon2id$ $argon2i$ $argon2d$: Argon2
  • $pbkdf2-sha256$ (passlib) และ pbkdf2_sha256$ (Django): PBKDF2
  • $P$ และ $H$: phpass (WordPress และ phpBB) ส่วน $S$: Drupal 7
  • * ตามด้วยอักขระ hex 40 ตัว: MySQL 4.1+
  • {SSHA} {SHA} และสคีม LDAP ทั่วไปอื่น ๆ

ในกรณีที่พบบ่อย ผลลัพธ์จะแสดงโหมด hashcat (-m) ด้วย ได้แก่ MD5 0, NTLM 1000, SHA-1 100, SHA-256 1400, SHA-512 1700, bcrypt 3200, md5crypt 500, sha256crypt 7400, sha512crypt 1800, phpass 400, Drupal 7 7900, MySQL 4.1+ 300 และ Django PBKDF2-SHA256 10000

คีย์ โทเค็น และรหัสระบุ:

  • บล็อก PEM (-----BEGIN ...-----): คีย์ส่วนตัว (RSA, EC, OpenSSH และ PKCS #8) คีย์ส่วนตัวที่ป้องกันด้วยรหัสผ่าน คีย์สาธารณะ ใบรับรอง X.509 และคำขอใบรับรอง
  • ASCII armor ของ OpenPGP: ข้อความที่เข้ารหัสลับ (BEGIN PGP MESSAGE) บล็อกคีย์ และลายเซ็น
  • คีย์สาธารณะ OpenSSH (ssh-rsa ssh-ed25519 และ ecdsa-sha2-...)
  • JSON Web Token: ระบบจะถอดรหัสเฮดเดอร์เพื่อแสดง alg และ typ ส่วนโทเค็นห้าส่วนที่มีฟิลด์ enc คือ JWE ที่เข้ารหัสลับ
  • UUID พร้อมเวอร์ชัน (เป็นรหัสระบุ ไม่ใช่แฮช)

การเข้ารหัสข้อมูล (encoding) ใช้เฉพาะเมื่อไม่มีรูปแบบใดที่เจาะจงกว่าตรงกัน:

  • hex, Base32, Base64 และ Base64url พร้อมความยาวหลังถอดรหัสเป็นไบต์ รวมถึงการเข้ารหัสแบบ URL (percent-encoding)
  • ข้อมูล hex หรือ Base64 ที่ถอดรหัสแล้วมีความยาวเป็นพหุคูณของ 16 ไบต์ อาจเป็นผลลัพธ์ของบล็อกไซเฟอร์อย่าง AES ส่วนขนาด 128, 256, 384 หรือ 512 ไบต์ อาจเป็นข้อมูลที่เข้ารหัสลับด้วย RSA หรือลายเซ็นก็ได้ และข้อมูล Base64 หรือ Base32 ขนาด 16, 20, 28, 32, 48 หรือ 64 ไบต์ อาจเป็นแฮช MD5, SHA-1 หรือ SHA-2 แบบดิบ

สิ่งที่การระบุบอกคุณไม่ได้

  • อัลกอริทึมที่แน่นอนด้วยความมั่นใจ 100% สตริง hex 64 อักขระจะรายงานเป็น SHA-256 หรือ SHA3-256 แต่ BLAKE2s และแฮช 256 บิตอื่น ๆ ก็มีหน้าตาเหมือนกันทุกประการ ส่วนแฮช MD5, MD4 และ NTLM ล้วนมีความยาว 32 อักขระ hex
  • ไซเฟอร์ที่ใช้เข้ารหัสลับข้อมูลก้อนนั้น ข้อมูลที่เข้ารหัสลับแล้วดูเหมือนข้อมูลสุ่ม ความยาวช่วยได้เพียงจำกัดตัวเลือกให้แคบลง AES หรือ RSA จึงเป็นเพียงความเป็นไปได้ ไม่ใช่ข้อสรุปที่แน่นอน
  • ความแข็งแกร่งของคีย์ แฮช bcrypt แสดงค่า cost factor ในคำนำหน้า ($2y$10$ = cost 10) แต่ไม่ได้บอกความแข็งแกร่งของรหัสผ่านต้นทาง
  • ว่ามีการ salt หรือไม่ แฮชรหัสผ่านสมัยใหม่ (bcrypt และ Argon2) มี salt เสมอ ส่วนแบบเก่า (MD5/SHA แบบดิบ) อาจมีหรือไม่มีก็ได้
  • เพลนเท็กซ์ การระบุไม่ได้ย้อนแฮชกลับ การแคร็กเป็นกระบวนการแยกต่างหาก และทำได้อย่างถูกกฎหมายเฉพาะกับข้อมูลของคุณเอง

เมื่อตัวระบุผิด

  • โทเค็นที่มีคำนำหน้าแบบกำหนดเอง บางแอปห่อแฮชด้วยคำนำหน้าของตัวเอง ให้ลอกส่วนที่ห่อออกก่อน
  • การเข้ารหัสซ้อน แฮชไบนารีที่แปลงเป็น hex แล้วห่อด้วย Base64 อีกชั้นจะถูกระบุผิด ลองถอดรหัสหนึ่งครั้งแล้วตรวจใหม่
  • ความยาวผิดปกติ แฮชที่ถูกตัดสั้น (เช่น 16 อักขระแรกของ SHA-256 ที่ใช้เป็น ID) จะแสดงเป็นข้อมูล hex ธรรมดา เพราะความยาวนั้นไม่ตรงกับแฮชใดในตารางด้านบน
  • หลายค่าพร้อมกัน เครื่องมือตรวจทีละหนึ่งค่า ถ้าคุณวางรายการแฮชหลายบรรทัด ระบบจะตรวจเฉพาะบรรทัดแรก ให้วางค่าอื่นทีละค่า

กรณีการใช้งาน

  • การตรวจสอบความปลอดภัย: จัดทำรายการประเภทแฮชทั่วโค้ดเบสก่อนการย้ายระบบการเข้ารหัส
  • โจทย์ CTF: การไล่ดูครั้งแรกอย่างรวดเร็วของบล็อกที่ไม่ทราบ
  • การตอบสนองต่อเหตุการณ์: ระบุรูปแบบข้อมูลรับรองที่รั่วไหล
  • การดีบักเฟรมเวิร์ก: ค้นหาว่าไลบรารีผลิตการเข้ารหัสแบบใด

เตือนเรื่องจริยธรรม

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

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

บางส่วน: MD5 คือ 32 อักขระ hex, SHA-1 คือ 40 หากทั้งคู่อยู่ในช่วงความยาวเดียวกัน คุณแยกแยะด้วยแฮชเพียงอย่างเดียวไม่ได้ บริบท (ชื่อคอลัมน์ฐานข้อมูล ค่าเริ่มต้นของเฟรมเวิร์ก สคีมาที่รั่วไหล) มักตัดสินได้

ไม่ มันเพียงระบุ การย้อนแฮชหรือถอดรหัสไซเฟอร์เท็กซ์ต้องใช้เครื่องมือแยกต่างหาก (และคีย์ หรือทรัพยากรการคำนวณสำหรับการแคร็ก) และถูกกฎหมายเฉพาะกับเอกสารของคุณเอง

Argon2id (หรือ bcrypt ที่ cost factor สูง) เป็นคำแนะนำปัจจุบัน PBKDF2-SHA256 และ scrypt ยังคงยอมรับได้ MD5 ธรรมดา SHA-1 หรือ SHA-256 ที่ไม่มี salt ไม่ปลอดภัยสำหรับการจัดเก็บรหัสผ่าน

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

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

รหัสแปลงตัวเลขเป็นตัวอักษร

แปลงตัวเลขเป็นตัวอักษรและย้อนกลับด้วยรหัส A=1, B=2 (A1Z26) สำหรับปริศนา คำทาย และเบาะแสในห้องเอสเคปรูม

เครื่องสร้างพาสเฟรส (Passphrase)

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

เครื่องสร้างคีย์ API แบบสุ่ม

สร้างคีย์ API บนเซิร์ฟเวอร์ความยาว 8–128 อักขระในรูปแบบ hex, base64url หรืออักษรและตัวเลข หรือสร้าง UUIDv4

เครื่องมือสร้างกุญแจ PGP

สร้างคู่กุญแจ OpenPGP แบบ ASCII armor พร้อมใบรับรองการเพิกถอนด้วย Curve25519, RSA 2048 หรือ RSA 4096

เครื่องมือเข้ารหัส Polybius

เข้ารหัสอักษรละตินเป็นพิกัด Polybius หรือถอดรหัสคู่ตัวเลขที่คั่นด้วยช่องว่าง โดยใช้ตาราง 5×5 แบบคงที่ที่รวม I/J

ตัวเข้ารหัสรหัสลับ A1Z26

เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้

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