Mã Hóa RSA Online

Tạo cặp khóa, mã hóa/giải mã RSA-OAEP và ký/xác minh RSA-PSS

Cảnh báo: Private key chỉ tồn tại trong trình duyệt và biến mất khi reload. Hãy sao chép và lưu lại an toàn nếu cần dùng tiếp.

Mã Hóa RSA Online - Tạo Key, Encrypt/Decrypt, Sign/Verify

Tính Năng Nổi Bật

  • Tạo cặp khóa RSA: Sinh keypair 2048/3072/4096 bit, xuất PEM (PKCS#8 + SPKI)
  • RSA-OAEP + SHA-256: Mã hóa với public key, giải mã với private key, padding an toàn
  • RSA-PSS + SHA-256: Ký số với private key, xác minh bằng public key, salt 32 bytes
  • Import key PEM: Hỗ trợ public key SPKI và private key PKCS#8 chuẩn OpenSSL
  • Output Base64: Ciphertext và signature ở định dạng dễ chia sẻ
  • Dùng lại key đã tạo: Một click để đổ key vừa generate vào form encrypt/sign

Ứng Dụng Thực Tế

  • Trao đổi khóa: Mã hóa AES key bằng RSA public key (hybrid encryption)
  • Chữ ký số: Ký document, license, JWT bằng private key, ai cũng verify được
  • Authentication: Verify identity bằng public key, không cần lộ secret
  • Developer: Test RSA implementation, debug PEM, generate test keypair
  • Học tập: Hiểu asymmetric crypto, OAEP padding, PSS signature, PKCS#8/SPKI

Hướng Dẫn Sử Dụng

  1. Bước 1: Vào tab "Tạo cặp khóa", chọn modulus length 2048/3072/4096, nhấn Tạo
  2. Bước 2: Sao chép và lưu private key cẩn thận — không thể recover nếu mất
  3. Bước 3: Chia sẻ public key cho người gửi tin (encrypt) hoặc người verify
  4. Bước 4: Sang tab "Mã hóa / Giải mã" hoặc "Ký / Xác minh", paste key tương ứng
  5. Bước 5: Nhập message → nhấn Mã hóa/Giải mã/Ký/Xác minh, sao chép kết quả

Kiến Thức Về RSA

RSA: Thuật toán mã hóa bất đối xứng dựa trên độ khó của bài toán phân tích thừa số nguyên tố. Có 2 khóa: public (chia sẻ) và private (giữ bí mật).

RSA-OAEP: Optimal Asymmetric Encryption Padding — chuẩn modern thay thế PKCS#1 v1.5, an toàn trước chosen-ciphertext attack. Mặc định dùng SHA-256.

RSA-PSS: Probabilistic Signature Scheme — chuẩn modern cho chữ ký RSA, có salt ngẫu nhiên nên cùng message ký 2 lần ra signature khác nhau (an toàn hơn PKCS#1 v1.5).

Key size: 2048-bit là tối thiểu khuyên dùng (an toàn đến ~2030). 3072-bit cho tài liệu dài hạn. 4096-bit cho mức bảo mật cao nhất nhưng chậm hơn 5-7 lần.

PEM format: Base64 wrap với header "-----BEGIN ... KEY-----". Public key dùng SPKI, private key dùng PKCS#8 — đây là format mặc định của OpenSSL hiện đại.

Giới hạn payload RSA-OAEP: ≈ key_size_bytes − 2 × hash_len − 2. Với SHA-256: 2048-bit ≈ 190 bytes, 3072-bit ≈ 318 bytes, 4096-bit ≈ 446 bytes. Data lớn hơn cần hybrid (RSA wrap AES key + AES encrypt data).

Câu Hỏi Thường Gặp

RSA và AES khác nhau thế nào?

AES là mã hóa đối xứng (1 khóa cho cả 2 chiều), nhanh, hợp data lớn. RSA là bất đối xứng (2 khóa), chậm hơn, chỉ encrypt được data nhỏ nhưng giải bài toán trao đổi khóa và chữ ký số. Thực tế thường kết hợp: dùng RSA để mã hóa AES key, AES để mã hóa data.

Sao public key thì share được, private thì không?

Public key dùng để encrypt và verify — kẻ tấn công có nó cũng không decrypt hay giả mạo chữ ký được. Private key dùng để decrypt và sign — ai có nó là có quyền giả mạo bạn, vì vậy phải giữ tuyệt mật.

"Data too large" khi encrypt là sao?

RSA-OAEP có giới hạn payload (~190 bytes với 2048-bit). Nếu vượt, phải dùng hybrid encryption: tạo random AES key, encrypt data bằng AES, encrypt AES key bằng RSA, gửi cả hai. Đây là pattern chuẩn TLS/PGP.

Tại sao ký 2 lần cùng message ra signature khác nhau?

RSA-PSS có salt ngẫu nhiên 32 bytes nên signature luôn khác nhau, nhưng cả hai đều verify được với cùng public key. Đây là tính năng bảo mật, không phải lỗi.

Có thể import key OpenSSL vào tool này không?

Được, miễn là format PKCS#8 (private) hoặc SPKI (public). Convert nhanh: openssl pkcs8 -topk8 -in old.pem -out new.pem -nocrypt cho private; openssl rsa -in priv.pem -pubout cho public SPKI.

Verify signature trả về false là do đâu?

Có thể do: (1) sai public key (không cùng cặp với private đã ký), (2) message bị thay đổi dù chỉ 1 ký tự, (3) signature bị copy thiếu/thừa, (4) sai algorithm (PSS vs PKCS1-v1.5), (5) sai hash function. Verify false không phải lỗi tool — nghĩa là chữ ký không hợp lệ.

Dữ liệu có gửi lên server không?

Hoàn toàn không. Toàn bộ tạo key, encrypt, decrypt, sign, verify chạy trong trình duyệt qua Web Crypto API. Private key không bao giờ rời khỏi máy bạn.

Mã Hóa RSA Online Miễn Phí - Công cụ RSA toàn diện: tạo keypair 2048-4096 bit, encrypt RSA-OAEP, sign RSA-PSS với SHA-256. Hoàn toàn client-side, an toàn.

Phát triển bởi dungqb.com - Cung cấp các công cụ online hữu ích cho cuộc sống hàng ngày.