Toolonit
  1. หน้าแรก
  2. เข้ารหัสลับ
  3. เข้ารหัส / ถอดรหัส
  4. SM4

เข้ารหัสและถอดรหัส SM4

เข้ารหัสและถอดรหัสข้อความด้วย SM4 มาตรฐานการเข้ารหัสแห่งชาติของจีน

เข้ารหัสด้วย

ต้องใช้รหัสผ่านนี้อีกครั้งเพื่อถอดรหัส สิ่งที่คุณพิมพ์จะไม่ออกจากหน้านี้

จำนวนรอบ PBKDF2

ค่าเริ่มต้นของ OpenSSL คือ 10,000 ใช้ตัวเลขใดก็ได้ ยิ่งมากยิ่งทำให้เดารหัสผ่านได้ช้าลง และการถอดรหัสต้องใช้จำนวนเดียวกัน

โหมด

ตัวเลือกปกติเมื่อใช้กับ OpenSSL ต้องใช้ IV และเติม padding ให้เต็มบล็อก

ผลลัพธ์เป็น
ทำแบบเดียวกันด้วย OpenSSL
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -A

OpenSSL จะถามรหัสผ่าน ให้วางข้อความลงไป หรือเพิ่มไฟล์ -in และ -out

SM4 ชื่อเดิม SMS4 คือ block cipher มาตรฐานแห่งชาติของจีน (GB/T 32907-2016) ใช้คีย์ 128 บิตและบล็อกขนาด 16 ไบต์ และเป็นส่วนหนึ่งของ ISO/IEC 18033-3 ตั้งแต่ปี 2021 ระบบที่ทำตามกฎการเข้ารหัสเชิงพาณิชย์ของจีนใช้ SM4 ในจุดที่ระบบอื่นใช้ AES เช่น ระบบธนาคารและระบบของภาครัฐ ที่นี่คุณเข้ารหัสและถอดรหัสข้อความด้วย SM4 ในโหมด CBC เป็นค่าเริ่มต้น หรือ ECB, CTR, CFB หรือ OFB ด้วยรหัสผ่านในรูปแบบ openssl enc -pbkdf2 หรือคีย์และ IV แบบ hex 32 หลักของคุณเอง SM4 ทำงานในเบราว์เซอร์ ข้อความและคีย์จึงไม่ออกจากอุปกรณ์ของคุณ ใช้ฟรีและไม่ต้องสมัครสมาชิก

วิธีเข้ารหัสและถอดรหัสข้อความด้วย SM4

  1. เลือก “เข้ารหัส” หรือ “ถอดรหัส” แล้วพิมพ์ข้อความที่จะเข้ารหัส หรือวางข้อความ Base64 หรือ hex ที่จะถอดรหัส ระบบจะตรวจรูปแบบให้อัตโนมัติ
  2. ใส่รหัสผ่าน (ปุ่ม “สร้าง” จะสร้างรหัสผ่านที่แข็งแรงให้) หรือสลับไปที่ “คีย์และ IV (hex)” แล้วใส่หรือสร้างคีย์ 32 หลักและ IV 32 หลัก (ECB ไม่มี IV)
  3. เลือกโหมด ซึ่งคือ CBC เว้นแต่ข้อมูลสร้างด้วยโหมดอื่น เปิด “ไม่ใช้ padding” เฉพาะเมื่อข้อมูลถูกเข้ารหัสโดยไม่มี padding แบบ PKCS#7
  4. คัดลอกหรือดาวน์โหลดผลลัพธ์ ในส่วน “ทำแบบเดียวกันด้วย OpenSSL” หน้านี้จะแสดงคำสั่ง openssl ที่ทำแบบเดียวกัน โดยไม่มีรหัสผ่านของคุณ

ความสามารถ

  • SM4 (GB/T 32907-2016) พร้อมคีย์ 128 บิต
  • โหมด CBC, ECB, CTR, CFB และ OFB พร้อม padding แบบ PKCS#7 หรือไม่ใช้ padding
  • โหมดรหัสผ่านในรูปแบบ openssl enc -pbkdf2 ที่ openssl enc -sm4-cbc อ่านได้
  • คำสั่ง openssl ที่ตรงกันสำหรับทุกโหมด
  • โหมดคีย์และ IV ด้วยคีย์และ IV แบบ hex 32 หลัก พิมพ์เองหรือสุ่มสร้าง
  • อินพุตและผลลัพธ์เป็น Base64 หรือ hex คัดลอก ดาวน์โหลด หรือ “สลับ” ผลลัพธ์ได้

เป็นส่วนตัวหรือไม่

ใช่ SM4 ทำงานด้วย WebAssembly ภายในเบราว์เซอร์ของคุณ และรหัสผ่านถูกยืดด้วย Web Crypto ของเบราว์เซอร์ ข้อความ รหัสผ่าน และคีย์ไม่เคยถูกอัปโหลดหรือบันทึก

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

SM4 ปลอดภัยไหม

ปลอดภัย ยังไม่มีการโจมตีที่ใช้ได้จริงกับ SM4 เต็ม 32 รอบ และคีย์ 128 บิตให้ความปลอดภัยใกล้เคียง AES-128 เช่นเดียวกับ cipher อื่นในหน้านี้ จุดอ่อนอยู่ที่รหัสผ่าน ให้ใช้รหัสผ่านสุ่มที่ยาว

ถอดรหัสด้วย OpenSSL ได้ไหม

ได้ ด้วย OpenSSL 3: echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A (จากนั้น OpenSSL จะถามรหัสผ่าน) ใช้ -sm4-ecb, -sm4-ctr, -sm4-cfb หรือ -sm4-ofb สำหรับโหมดอื่น และใช้ -K <hex 32 หลัก> -iv <hex 32 หลัก> แทน -pbkdf2 -iter ในโหมดคีย์และ IV หาก openssl ของคุณไม่รับ sm4-cbc แสดงว่าคอมไพล์มาโดยไม่มี SM4

รองรับ SM4-GCM ไหม

ไม่รองรับ SM4 มีให้ในโหมด CBC, ECB, CTR, CFB และ OFB ซึ่งเป็นโหมดที่ openssl enc มี และไม่มีโหมดใดตรวจจับการแก้ไขข้อความได้ ส่วน GCM ใช้ได้ในหน้า AES

ทำ SM2 หรือ SM3 ได้ด้วยไหม

ไม่ได้ SM2 เป็นอัลกอริทึมแบบกุญแจสาธารณะ และ SM3 เป็นฟังก์ชันแฮช หน้านี้ทำได้เฉพาะการเข้ารหัสแบบสมมาตรด้วย SM4 ส่วนแฮช เครื่องมือสร้างค่าแฮชมี MD5 และตระกูล SHA แต่ไม่มี SM3

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