Werkzeuge
Leitfäden

RSA verschlüsseln / signieren

Krypto

RSA-OAEP-Verschlüsselung und RSASSA-PKCS1-v1_5-Signatur mit Web Crypto. Schlüsselpaar erzeugen oder PEM einfügen.

100 % clientseitig Ohne Backend
Nachricht
Signatur
Schlüssel (PEM)
Ausgabe
Öffentlicher Schlüssel (PEM)
Privater Schlüssel (PEM)
Auf dieser Seite

Was ist RSA?#

RSA ist asymmetrische Kryptografie: Sie arbeitet mit einem passenden Schlüsselpaar statt einem gemeinsamen Secret. Ein öffentlicher Schlüssel kann jedem ausgehändigt werden — seine einzige Aufgabe ist es, Daten zu sperren und Signaturen zu prüfen. Ein privater Schlüssel bleibt bei Ihnen und ist das Einzige, was Daten entschlüsseln kann, die an den öffentlichen Schlüssel verschlüsselt wurden, oder eine Signatur erzeugt, die jeder verifizieren kann. Diese Trennung ist es, die zwei Parteien, die nie ein Secret geteilt haben, vertrauliche Nachrichten austauschen und Authentizität beweisen lässt.

Diese Seite deckt die vier Operationen, für die RSA normalerweise verwendet wird, alle über die native Web-Crypto-Engine des Browsers:

  • Verschlüsseln / Entschlüsseln verwenden RSA-OAEP mit SHA-256 — das moderne, authentifizierte Padding-Schema. Eine kurze Nachricht, die mit dem öffentlichen Schlüssel verschlüsselt wurde, kann nur mit dem privaten Schlüssel zurückgelesen werden.
  • Signieren / Verifizieren verwenden RSASSA-PKCS1-v1_5 mit SHA-256 — das am weitesten interoperable Signing-Schema, das die meisten JWTs und X.509-Ketten noch verwenden.
  • Schlüssel-Erzeugung erzeugt 2048-, 3072- oder 4096-Bit-Paare mit einem öffentlichen Exponenten von 65537, exportiert als Standard-PEM (SubjectPublicKeyInfo für den öffentlichen Schlüssel, PKCS#8 für den privaten).

RSA ist absichtlich auf kurze Nutzlasten beschränkt. Mit RSA-2048 und SHA-256 ist die größte Nachricht, die Sie verschlüsseln können, etwa 190 Bytes; für alles Größere verwenden Sie das symmetrische Werkzeug und schützen seinen Schlüssel mit RSA.

Verwendung#

  1. Paar erzeugen. Wählen Sie eine Schlüsselgröße (2048 / 3072 / 4096) und klicken Sie auf Erzeugen. Zwei schreibgeschützte Felder füllen sich: der öffentliche Schlüssel und der private Schlüssel, beide in PEM. Kopieren Sie jeden an einen sicheren Ort — der private Schlüssel ist, was Sie niemals teilen dürfen.
  2. Wählen Sie einen Modus: Verschlüsseln, Entschlüsseln, Signieren oder Verifizieren.
  3. Setzen Sie den richtigen Schlüssel ins Schlüsselfeld für den Modus:
    • Verschlüsseln → öffentlichen Schlüssel einfügen.
    • Entschlüsseln → privaten Schlüssel einfügen.
    • Signieren → privaten Schlüssel einfügen.
    • Verifizieren → öffentlichen Schlüssel einfügen.
  4. Tippen Sie die Nachricht. Für Verifizieren fügen Sie zudem die Signatur (Base64) in das Signatur-Feld ein.
  5. Führen Sie es aus. Die Statuszeile meldet das Ergebnis — bei Verifizieren sagt sie ausdrücklich, ob die Signatur gültig oder ungültig ist.

Eckpunkte#

  • Zwei Algorithmen, ein Schlüsselpaar. Dasselbe PEM funktioniert für OAEP-Verschlüsselung und PKCS#1-Signatur, weil Web Crypto den Algorithmus zur Importzeit nimmt.
  • Standard-PEM-Ausgabe. Öffentliche Schlüssel sind SPKI, private Schlüssel sind PKCS#8 — die Formate, die jede Sprache und Plattform nativ liest.
  • 65537 öffentlicher Exponent. Der universell gewählte Wert; klein genug, um schnell zu sein, groß genug, um bekannte Schwächen zu vermeiden.
  • Interoperable Signaturen. RSASSA-PKCS1-v1_5 ist das Format, das echte JWTs, Code-Signing und Zertifikats-Ketten erwarten.
  • Kein Upload. Schlüsselerzeugung, Verschlüsselung und Signieren laufen allesamt lokal in Ihrem Browser; der private Schlüssel berührt niemals einen Server.

Konkretes Beispiel#

Klicken Sie auf Erzeugen mit ausgewähltem 2048. Das Feld für den öffentlichen Schlüssel füllt sich mit einem PEM-Block dieser Form:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyY7v...(Zeilen aus Base64)
-----END PUBLIC KEY-----

Das Feld für den privaten Schlüssel füllt sich mit einem längeren -----BEGIN PRIVATE KEY------Block. Wechseln Sie nun zu Verschlüsseln, fügen Sie den öffentlichen Schlüssel ins Schlüsselfeld ein, tippen Sie handshake: 0x4F2A als Nachricht und führen Sie es aus. Die Ausgabe ist ein einzelner Base64-Blob von etwa 344 Zeichen Länge — exakt 256 Bytes RSA-2048-Ciphertext, base64-kodiert.

Schalten Sie zu Entschlüsseln, fügen Sie den privaten Schlüssel ins Schlüsselfeld, legen Sie jenen Blob ins Nachrichtenfeld und führen Sie es aus: das ursprüngliche handshake: 0x4F2A kommt zurück. Für das Signieren erzeugt derselbe Flow mit Signieren eine 344-Zeichen-Base64-Signatur, die Verifizieren gegen den öffentlichen Schlüssel als gültig bestätigt — und als ungültig meldet, wenn Sie vorher ein einziges Zeichen der Nachricht ändern.

FAQ#

Warum kann RSA nur kurze Nachrichten verschlüsseln?#

RSA arbeitet auf Zahlen modulo der Schlüsselgröße. Mit RSA-2048 haben Sie einen 256-Byte-Block, und OAEP-Padding verbraucht 2 * hashLen + 2 Bytes davon (98 für SHA-256), was 190 Bytes für die Nachricht selbst lässt. Das ist konstruktiv so — RSA ist für Schlüssel und Signaturen, nicht für Massendaten. Das Standardmuster ist „hybrid“: verschlüsseln Sie die Massendaten mit AES (verwenden Sie das symmetrische Werkzeug), dann verschlüsseln Sie nur den AES-Schlüssel mit RSA.

2048, 3072 oder 4096 Bit?#

2048 ist die aktuelle Basislinie und gilt noch für die meisten Verwendungen als angemessen. 3072 entspricht ungefähr einer 128-Bit-symmetrischen Stärke; 4096 ist die konservative Wahl für Schlüssel, die ein Jahrzehnt oder länger halten sollen. Jede Stufe kostet reale Zeit bei der Schlüsselerzeugung und jeder Operation, mit abnehmendem Sicherheitsgewinn.

Was ist der Unterschied zwischen Verschlüsseln und Signieren?#

Verschlüsselung handelt von Geheimheit: der öffentliche Schlüssel sperrt, der private Schlüssel entsperrt. Signieren handelt von Authentizität: der private Schlüssel erzeugt die Signatur, der öffentliche Schlüssel prüft sie. Sie verwenden dasselbe Schlüsselpaar, aber unterschiedliche Algorithmen (OAEP versus PKCS#1) und beantworten verschiedene Fragen — „kann das jemand lesen?“ versus „hat der Inhaber dieses Schlüssels das wirklich erzeugt?“.

Wird mein privater Schlüssel irgendwohin gesendet, wenn ich ihn erzeuge oder verwende?#

Nein. Erzeugung, Verschlüsselung, Entschlüsselung, Signieren und Verifikation werden alle in der Seite von Web Crypto ausgeführt. Die PEM-Blöcke existieren nur in Ihrem Browser-Tab; nichts wird übertragen. Wenn Sie einen produktiven privaten Schlüssel handhaben, erzeugen Sie ihn in einer Umgebung, die Sie kontrollieren, anstatt ihn überhaupt in eine Webseite einzufügen.