ตัวระบุการเข้ารหัส
คุณขูดฐานข้อมูล dump มาและเห็นสตริงอย่าง $2y$10$... หรือ 5f4dcc3b5aa765d61d8327deb882cf99 และต้องรู้ว่ากำลังดูอะไรอยู่ก่อนเริ่มแคร็กหรือย้อนกลับ ตัวระบุนี้ใช้ฮิวริสติกด้านความยาว ชุดอักขระ โครงสร้าง และคำนำหน้า เพื่อเดาอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็นที่สุดเบื้องหลังตัวอย่างไซเฟอร์เท็กซ์
วิธีระบุไซเฟอร์เท็กซ์
-
1
วางตัวอย่าง
แฮชเดียว บล็อกไซเฟอร์เท็กซ์ โทเค็น หรือสตริงที่เข้ารหัส
-
2
ดูรูปแบบที่ตรงกัน
ทุกรูปแบบที่รูปแบบตรงกับตัวอย่างของคุณจะแสดงในผลลัพธ์
-
3
ตรวจสอบไขว้
ถ้ามีหลายรูปแบบตรงกัน ให้ใช้ตัวแคร็กแฮชหรือตัวถอดรหัสเพื่อยืนยันว่ารูปแบบใดถูกต้อง
-
4
สังเกตความไม่แน่นอน
การระบุจากตัวอย่างเพียงอย่างเดียวแทบไม่ชี้ขาด ถ้าไม่มีอะไรตรงกัน เครื่องมือจะแจ้งให้ทราบ
รูปแบบลายเซ็นที่ตัวระบุใช้
อิงความยาว (สำหรับแฮชที่เข้ารหัส hex):
| ความยาว (อักขระ hex) | ระบุเป็น |
|---|---|
| 32 | MD5 |
| 40 | SHA-1 |
| 64 | SHA-256 |
| 128 | SHA-512 |
ความยาวอื่นๆ เช่น SHA-224 ที่ 56 อักขระ hex หรือ SHA-384 ที่ 96 จะไม่ถูกรู้จักเป็นแฮช (สตริง hex 56 หรือ 96 อักขระจะถูกจัดเป็น Base64 แทน)
อิงคำนำหน้า (รู้จักเฉพาะคำนำหน้า bcrypt):
$2a$$2b$$2y$bcrypt
คำนำหน้าแบบ crypt อื่นๆ ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) ไม่ถูกรู้จัก
อิงการเข้ารหัส:
- อักขระทั้งหมดอยู่ใน
[A-Za-z0-9+/=]และความยาวเป็นพหุคูณของ 4: น่าจะเป็น Base64 - สามส่วนคั่นด้วย
.แต่ละส่วนประกอบด้วยอักขระ[A-Za-z0-9_-]: JWT
กรอบ PEM บล็อก OpenSSH ssh-rsa/ssh-ed25519 และสตริง Base64url ที่มี - หรือ _ จะไม่ถูกตรวจพบ
สิ่งที่การระบุบอกคุณไม่ได้
- อัลกอริทึมที่แน่นอนด้วยความมั่นใจ 100% สตริง hex 64 อักขระจะรายงานเป็น SHA-256 แต่อาจเป็น SHA3-256 หรือ BLAKE2s ก็ได้ แยกแยะกันไม่ได้ด้วยไซเฟอร์เท็กซ์ แฮช NTLM (32 อักขระ hex เช่นกัน) ดูเหมือน MD5 ทุกประการ
- ความแข็งแกร่งของคีย์ แฮช bcrypt แสดงค่า cost factor ในคำนำหน้า (
$2y$10$= cost 10) แต่ไม่แสดงความแข็งแกร่งของรหัสผ่านที่อยู่เบื้องหลัง - ว่ามีการ salt หรือไม่ แฮชรหัสผ่านสมัยใหม่ (bcrypt, Argon2) มี salt เสมอ ของเก่า (raw MD5/SHA) อาจมีหรือไม่มี
- เพลนเท็กซ์ การระบุไม่ย้อนแฮช การแคร็กเป็นกระบวนการแยกต่างหาก ถูกกฎหมายเฉพาะกับข้อมูลของคุณเอง
เมื่อตัวระบุผิด
- โทเค็นที่มีคำนำหน้าแบบกำหนดเอง แอปบางครั้งห่อแฮชด้วยคำนำหน้าของตัวเอง ลอกกรอบออกก่อน
- การเข้ารหัสซ้อน hex ที่ห่อด้วย Base64 ของแฮชไบนารีจะระบุผิด ลองถอดรหัสหนึ่งครั้งแล้วรันใหม่
- ความยาวผิดปกติ แฮชที่ถูกตัด (16 อักขระแรกของ SHA-256 ใช้เป็น ID) จะแสดงเป็น “Base64” เพราะกฎอักขระและความยาวซ้อนทับกัน
- รูปแบบที่มีกรอบหรือถูกห่อ กรอบ PEM คีย์ OpenSSH และรูปแบบ
pbkdf2_sha256$...ของ Django ไม่ถูกรู้จัก เอาคำนำหน้าหรือกรอบออกแล้วลองใหม่ หรือใช้ตัวแยกวิเคราะห์เฉพาะทาง
กรณีการใช้งาน
- การตรวจสอบความปลอดภัย: จัดทำรายการประเภทแฮชทั่วโค้ดเบสก่อนการย้ายระบบการเข้ารหัส
- โจทย์ CTF: การไล่ดูครั้งแรกอย่างรวดเร็วของบล็อกที่ไม่ทราบ
- การตอบสนองต่อเหตุการณ์: ระบุรูปแบบข้อมูลรับรองที่รั่วไหล
- การดีบักเฟรมเวิร์ก: ค้นหาว่าไลบรารีผลิตการเข้ารหัสแบบใด
เตือนเรื่องจริยธรรม
การระบุรูปแบบแฮชเป็นการวิจัยแบบเฉื่อย การแคร็กแฮชของผู้อื่นโดยไม่ได้รับอนุญาตละเมิดกฎหมายการใช้คอมพิวเตอร์ในทางที่ผิดในเขตอำนาจศาลส่วนใหญ่ ทำงานเฉพาะกับแฮชที่คุณเป็นเจ้าของหรือได้รับอนุญาตให้วิเคราะห์
คำถามที่พบบ่อย
บางส่วน: MD5 คือ 32 อักขระ hex, SHA-1 คือ 40 หากทั้งคู่อยู่ในช่วงความยาวเดียวกัน คุณแยกแยะด้วยแฮชเพียงอย่างเดียวไม่ได้ บริบท (ชื่อคอลัมน์ฐานข้อมูล ค่าเริ่มต้นของเฟรมเวิร์ก สคีมาที่รั่วไหล) มักตัดสินได้
ไม่ มันเพียงระบุ การย้อนแฮชหรือถอดรหัสไซเฟอร์เท็กซ์ต้องใช้เครื่องมือแยกต่างหาก (และคีย์ หรือทรัพยากรการคำนวณสำหรับการแคร็ก) และถูกกฎหมายเฉพาะกับเอกสารของคุณเอง
Argon2id (หรือ bcrypt ที่ cost factor สูง) เป็นคำแนะนำปัจจุบัน PBKDF2-SHA256 และ scrypt ยังคงยอมรับได้ MD5 ธรรมดา SHA-1 หรือ SHA-256 ที่ไม่มี salt ไม่ปลอดภัยสำหรับการจัดเก็บรหัสผ่าน
ไม่ ค่าที่คุณวางจะถูกส่งไปยังเซิร์ฟเวอร์ของเราเพื่อตรวจสอบรูปแบบ แต่ไม่ถูกจัดเก็บในฐานข้อมูลใดๆ และไม่ถูกเพิ่มในลิงก์หน้าเว็บ
เครื่องมือที่เกี่ยวข้อง
ตัวเข้ารหัสไฟล์ Base64
เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด
ตัวเข้ารหัสและถอดรหัส Base58
เข้ารหัสข้อความ UTF-8 หรือไบต์เลขฐานสิบหก และถอดรหัส Base58 อย่างปลอดภัยด้วยชุดอักขระ Bitcoin, Ripple หรือ Flickr
เครื่องมือเข้ารหัสซีซาร์
เข้ารหัสและถอดรหัสข้อความด้วยรหัสซีซาร์ เลื่อนได้ตั้งแต่ 1-25 รองรับ ROT13 เป็นกรณีพิเศษ และคงเครื่องหมายวรรคตอนกับตัวพิมพ์ใหญ่-เล็กไว้เหมือนเดิม
ตัวสร้าง bcrypt
สร้าง bcrypt hash จากรหัสผ่าน plaintext ปรับ cost factor ได้ตั้งแต่ 4 ถึง 13 ใช้ร่วมกับ Laravel, Django, Node และ PHP ได้
ตัวเข้ารหัสรหัสลับ A1Z26
เข้ารหัสข้อความด้วยรหัสลับ A1Z26 (A=1, B=2, ... Z=26) หรือถอดรหัสลำดับตัวเลขกลับเป็นตัวอักษร พร้อมปรับตัวคั่นได้
เข้ารหัส / ถอดรหัส AES
เข้ารหัสและถอดรหัสข้อความความเสี่ยงต่ำด้วย AES cipher ของ OpenSSL passphrase จะถูก hash ด้วย SHA-256 และผลลัพธ์ Base64 มี IV รวมกับข้อความเข้ารหัส
เครื่องมือนี้มีให้บริการในภาษาอื่น
- 加密标识符 [ZH]
- 暗号化識別子 [JA]
- Şifreleme Tanımlayıcısı [TR]
- Identificateur de chiffrement [FR]
- Encryption Identifier [EN]
- Identyfikator szyfrowania [PL]
- Versleutelingsidentifier [NL]
- Identificador de Criptografia [PT]
- Mã định danh mã hóa [VI]
- معرّف التشفير [AR]
- Verschlüsselungs-Identifikator [DE]
- Identifikasi Enkripsi [ID]
- 암호화 식별자 [KO]
- Krypteringsidentifierare [SV]
- Identificador de Cifrado [ES]
- Identificatore di Crittografia [IT]
- Идентификатор шифрования [RU]