Toolonit
  1. Trang chủ
  2. Mã hóa
  3. Mã hóa / Giải mã
  4. SM4

Mã hóa và giải mã SM4

Mã hóa và giải mã văn bản bằng SM4, tiêu chuẩn quốc gia của Trung Quốc.

Mã hóa bằng

Bạn sẽ cần lại mật khẩu này để giải mã. Không có gì bạn gõ rời khỏi trang này.

Số vòng lặp PBKDF2

Mặc định của OpenSSL là 10.000. Số nào cũng được: càng nhiều thì mật khẩu càng khó đoán; khi giải mã cần đúng số đó.

Chế độ

Lựa chọn thông dụng với OpenSSL. Cần IV; đệm cho đủ khối.

Xuất dạng
Làm tương tự với OpenSSL
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -A

OpenSSL sẽ hỏi mật khẩu; hãy dán văn bản vào đó, hoặc thêm tệp -in và -out.

SM4, trước đây là SMS4, là mã khối tiêu chuẩn quốc gia của Trung Quốc (GB/T 32907-2016), với khóa 128 bit và khối 16 byte; từ năm 2021 nó cũng thuộc tiêu chuẩn ISO/IEC 18033-3. Các hệ thống tuân theo quy định mật mã thương mại của Trung Quốc dùng nó ở những chỗ mà nơi khác dùng AES, chẳng hạn trong hệ thống ngân hàng và chính phủ. Tại đây bạn có thể mã hóa và giải mã văn bản bằng SM4, mặc định ở chế độ CBC, hoặc ECB, CTR, CFB, OFB, với mật khẩu theo định dạng openssl enc -pbkdf2 hoặc khóa và IV hex 32 chữ số của riêng bạn. SM4 chạy trong trình duyệt nên văn bản và khóa không bao giờ rời khỏi thiết bị của bạn; công cụ miễn phí và không cần đăng ký.

Cách mã hóa và giải mã văn bản bằng SM4

  1. Chọn Mã hóa hoặc Giải mã. Gõ văn bản cần mã hóa, hoặc dán văn bản Base64 hay hex cần giải mã — định dạng được nhận diện tự động.
  2. Nhập mật khẩu (nút Tạo sẽ sinh một mật khẩu mạnh), hoặc chuyển sang Khóa & IV (hex) rồi nhập hoặc tạo khóa 32 chữ số và IV 32 chữ số (ECB không có IV).
  3. Chọn chế độ — CBC, trừ khi dữ liệu được tạo bằng chế độ khác. Chỉ bật Không đệm nếu dữ liệu được mã hóa mà không có đệm PKCS#7.
  4. Sao chép hoặc tải xuống kết quả. Ở mục Làm tương tự với OpenSSL, trang hiển thị lệnh openssl làm điều tương tự, không kèm mật khẩu của bạn.

Tính năng

  • SM4 (GB/T 32907-2016) với khóa 128 bit
  • Chế độ CBC, ECB, CTR, CFB và OFB; đệm PKCS#7 hoặc không đệm
  • Chế độ mật khẩu theo định dạng openssl enc -pbkdf2, đọc được bằng openssl enc -sm4-cbc
  • Lệnh openssl tương ứng cho mọi chế độ
  • Chế độ Khóa & IV với khóa và IV hex 32 chữ số, tự nhập hoặc tạo ngẫu nhiên
  • Base64 hoặc hex cho đầu vào và đầu ra; sao chép, tải xuống hoặc Hoán đổi kết quả

Có riêng tư không?

Có. SM4 chạy bằng WebAssembly ngay trong trình duyệt, và mật khẩu được kéo giãn bằng Web Crypto của trình duyệt; văn bản, mật khẩu và khóa của bạn không bao giờ bị tải lên hay lưu lại.

Câu hỏi thường gặp

SM4 có an toàn không?

Có. Chưa có tấn công thực tế nào vào SM4 đầy đủ 32 vòng, và khóa 128 bit của nó cho mức an toàn tương đương AES-128. Như mọi thuật toán ở đây, mật khẩu là điểm yếu — hãy dùng mật khẩu dài, ngẫu nhiên.

Có thể giải mã bằng OpenSSL không?

Được, với OpenSSL 3: echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A (sau đó OpenSSL sẽ hỏi mật khẩu). Dùng -sm4-ecb, -sm4-ctr, -sm4-cfb hoặc -sm4-ofb cho các chế độ khác, và -K <32 chữ số hex> -iv <32 chữ số hex> thay cho -pbkdf2 -iter ở chế độ Khóa & IV. Nếu openssl của bạn từ chối sm4-cbc, nghĩa là nó được biên dịch không kèm SM4.

Có hỗ trợ SM4-GCM không?

Không. SM4 có ở các chế độ CBC, ECB, CTR, CFB và OFB — những chế độ mà openssl enc có; không chế độ nào trong số đó phát hiện thay đổi trong văn bản. GCM có trên trang AES.

Có làm được SM2 hoặc SM3 không?

Không. SM2 là thuật toán khóa công khai và SM3 là hàm băm; trang này chỉ làm mã hóa đối xứng SM4. Về hàm băm, công cụ Tạo mã hash có MD5 và họ SHA, không có SM3.

Công cụ liên quan