RSA 鍵ペア生成
Web Crypto API でブラウザ内に 2048 / 3072 / 4096bit の RSA 鍵ペアを生成し、PEM PKCS#8 + SPKI・OpenSSH 公開鍵・JWK・SHA-256 フィンガープリントを同時に出力します。JWT 署名・mTLS・SSH・JWKS に対応。
RSA Key Pair Generator sinh cặp khoá RSA thật bằng Web Crypto API ngay trên trình duyệt. Tool xuất đồng thời private/public PEM (PKCS#8 + SPKI), OpenSSH public, JWK và SHA-256 fingerprint — phù hợp cho JWT signing, mTLS, SSH access, JWKS endpoint cho OIDC.
service@prod) để xuất hiện trong file .pub.Private (PEM): PKCS#8 BEGIN PRIVATE KEY. Dùng trực tiếp với openssl, jose, Node, Python cryptography.
Public (PEM): X.509 SPKI BEGIN PUBLIC KEY. Tương thích mọi JWT library và mTLS verify.
OpenSSH: dòng ssh-rsa AAAA... paste thẳng vào ~/.ssh/authorized_keys.
JWK: format RFC 7517 cho .well-known/jwks.json, jose, hỗ trợ OIDC / OAuth 2.0.
Fingerprint: hash để đối chiếu khi share key qua kênh khác.
# Inspect private key openssl pkey -in rsa-2048-private.pem -text -noout # Inspect public key openssl pkey -pubin -in rsa-2048-public.pem -text -noout # SPKI fingerprint openssl pkey -pubin -in rsa-2048-public.pem -outform DER | sha256sum # OpenSSH fingerprint ssh-keygen -lf rsa-2048.pub
Có. Tool dùng Web Crypto API (SubtleCrypto.generateKey) chạy ngay trong trình duyệt. Không có request gửi private key lên server, không có log phía backend.
Private key xuất theo PKCS#8 (BEGIN PRIVATE KEY), public key xuất theo X.509 SubjectPublicKeyInfo (BEGIN PUBLIC KEY). Cả hai đều tương thích openssl, JWT library, ssh-keygen, jose.
Trình duyệt sinh số nguyên tố lớn ngẫu nhiên — 4096-bit cần kiểm tra primality nhiều vòng nên có thể mất 5–15 giây. Đây là chi phí chung của mọi RSA toolchain, không phải bug.
Được. Dòng ssh-rsa AAAA... đã đúng wire format SSH RFC 4253, paste thẳng vào ~/.ssh/authorized_keys. Để dùng private key cho SSH client, convert PKCS#8 sang OpenSSH format bằng `ssh-keygen -p -m PEM -f key.pem`.
2048-bit là mức tối thiểu cho production hiện tại. 3072-bit cho yêu cầu compliance dài hạn (NIST SP 800-57 khuyến nghị đến 2030). 4096-bit cho nghiệp vụ cần biên độ bảo mật cao và chấp nhận overhead CPU lớn hơn.
Signing dùng thuật toán RSASSA-PKCS1-v1_5 (chuẩn JWT RS256/RS384/RS512). Encryption dùng RSA-OAEP để mã hoá data nhỏ hoặc trao đổi khoá đối xứng. Byte của key giống nhau, nhưng metadata trong PEM khác nên nên chọn đúng mục đích.