Về công cụ này
RSA là một thuật toán bất đối xứng: nó tạo ra một cặp khóa liên kết về mặt toán học — một khóa công khai bạn có thể phân phát tự do và một khóa riêng tư mà bạn không bao giờ được chia sẻ. Bất cứ điều gì một khóa mã hóa, chỉ khóa còn lại mới có thể giải mã — và bất cứ điều gì khóa riêng tư ký, khóa công khai có thể xác minh. Tính bất đối xứng này là nền tảng của chứng chỉ TLS, xác thực SSH, email PGP và vô số cơ chế ký trên khắp web.
Công cụ này tạo cặp khóa đó hoàn toàn trong trình duyệt của bạn bằng WebCrypto API — cùng một cỗ máy mật mã đã được kiểm chứng tích hợp trong mọi trình duyệt hiện đại, không phải một phiên bản RSA viết lại bằng JavaScript. Chọn kích thước khóa (2048 bit là mức cơ bản hiện tại, 3072 hoặc 4096 bit cho nhu cầu dài hạn hoặc bảo mật cao hơn) và chế độ sử dụng: ký (RSASSA-PKCS1-v1_5 với SHA-256, để xác minh tính xác thực) hoặc mã hóa (RSA-OAEP với SHA-256, để bảo mật). Khóa không bao giờ rời khỏi thiết bị của bạn — không có gì được tải lên, và đóng tab sẽ xóa chúng vĩnh viễn, vì vậy hãy sao chép hoặc tải xuống trước khi rời trang.
Cả hai khóa đều được xuất theo định dạng PEM chuẩn: khóa công khai dưới dạng khối SPKI, khóa riêng tư dưới dạng PKCS8 — cùng định dạng mã hóa mà OpenSSL tạo ra, sẵn sàng cho tệp `.pem`, tệp cấu hình, hoặc bất kỳ thư viện nào cần dữ liệu khóa RSA chuẩn.
Câu hỏi thường gặp
Tôi nên chọn kích thước khóa nào?
2048-bit là mức tối thiểu được chấp nhận rộng rãi hiện nay và phù hợp cho hầu hết mục đích sử dụng ít nhất trong thập kỷ tới; chọn 3072 hoặc 4096-bit cho nhu cầu dài hạn hơn hoặc bảo mật cao hơn, đổi lại việc tạo khóa và thao tác sẽ chậm hơn một chút.
Sự khác biệt giữa khóa ký và khóa mã hóa là gì?
Khóa ký (RSASSA-PKCS1-v1_5) chứng minh tính xác thực và toàn vẹn — bạn ký dữ liệu bằng khóa riêng tư và người khác xác minh bằng khóa công khai của bạn. Khóa mã hóa (RSA-OAEP) làm ngược lại — người khác mã hóa dữ liệu bằng khóa công khai của bạn và chỉ khóa riêng tư của bạn mới giải mã được. Chúng dùng các thuật toán WebCrypto khác nhau và không nên trộn lẫn.