- Startseite
- Verschlüsselung
- RSA ver- und entschlüsseln
RSA-Verschlüsselung und -Entschlüsselung
Mit dem öffentlichen RSA-Schlüssel verschlüsseln, mit dem privaten entschlüsseln (OAEP oder PKCS#1 v1.5).
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256Verschlüsseln Sie ein kurzes Geheimnis mit dem öffentlichen RSA-Schlüssel (oder dem Zertifikat) einer anderen Person, sodass nur der Inhaber des privaten Schlüssels es lesen kann, oder entschlüsseln Sie einen Geheimtext mit Ihrem privaten Schlüssel. Wählen Sie OAEP mit SHA-256 (empfohlen), OAEP mit SHA-1 oder PKCS#1 v1.5; das Ergebnis ist Base64 oder Hex und funktioniert mit OpenSSL. Alles läuft in Ihrem Browser, sodass Schlüssel und Nachrichten nie Ihr Gerät verlassen; es ist kostenlos und ohne Anmeldung.
So ver- und entschlüsseln Sie mit RSA
- Wählen Sie Verschlüsseln oder Entschlüsseln und fügen Sie dann den Schlüssel ein oder öffnen Sie eine Schlüsseldatei: einen öffentlichen Schlüssel oder ein Zertifikat zum Verschlüsseln, den privaten Schlüssel (PKCS#8 oder PKCS#1) zum Entschlüsseln.
- Wählen Sie das Padding: OAEP · SHA-256, sofern die Gegenseite nichts anderes braucht.
- Tippen Sie die Nachricht ein oder fügen Sie den Geheimtext als Base64 oder Hex ein. Das Ergebnis erscheint beim Tippen.
- Kopieren Sie das Ergebnis oder laden Sie den Geheimtext als .bin-Datei für OpenSSL herunter.
Funktionen
- Verschlüsseln mit einem öffentlichen Schlüssel, einem Zertifikat oder der öffentlichen Hälfte eines privaten Schlüssels; entschlüsseln mit dem privaten Schlüssel
- OAEP mit SHA-256 (Standard), OAEP mit SHA-1 oder PKCS#1 v1.5
- Schlüssel als PEM oder DER: SPKI, PKCS#1, PKCS#8 und X.509-Zertifikate, bis 16.384 Bit
- Geheimtext als Base64, Hex oder .bin-Datei; entschlüsselt eingefügtes Base64 oder Hex oder eine geöffnete .bin-Datei
- Zeigt, wie viele Bytes Schlüssel und Padding verschlüsseln können, und den passenden Befehl openssl pkeyutl
- Läuft in einem WebAssembly-Worker in Ihrem Browser
Ist das privat?
Ja. Ver- und Entschlüsselung laufen in Ihrem Browser in einem WebAssembly-Worker; Schlüssel, Nachrichten und Geheimtexte werden nie hochgeladen oder gespeichert.
Häufige Fragen
Wie lang darf die Nachricht sein?
RSA verschlüsselt einen einzigen Block. Mit einem 2048-Bit-Schlüssel sind das bis zu 190 Bytes mit OAEP SHA-256, 214 mit OAEP SHA-1 und 245 mit PKCS#1 v1.5; größere Schlüssel erlauben mehr. Für alles Längere verschlüsseln Sie die Daten mit einer symmetrischen Chiffre oder nutzen Dateien verschlüsseln.
Warum ist der Geheimtext jedes Mal anders?
Jedes Padding fügt vor dem Verschlüsseln zufällige Bytes hinzu, daher ergibt dieselbe Nachricht jedes Mal einen neuen Geheimtext. Das ist so gewollt, und jeder davon ergibt entschlüsselt dieselbe Nachricht.
Funktioniert es mit OpenSSL?
Ja. Ein hier erstellter Geheimtext lässt sich mit openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 (oder rsa_padding_mode:pkcs1) entschlüsseln, und mit openssl pkeyutl -encrypt erstellte Geheimtexte lassen sich hier entschlüsseln. Verwenden Sie auf beiden Seiten dasselbe Padding.
Welche Schlüsselformate kann ich verwenden?
Öffentliche PEM-Schlüssel (BEGIN PUBLIC KEY oder BEGIN RSA PUBLIC KEY), Zertifikate und unverschlüsselte private Schlüssel in PKCS#8 (BEGIN PRIVATE KEY) oder PKCS#1 (BEGIN RSA PRIVATE KEY), auch als DER-Dateien. Passwortgeschützte und OpenSSH-Schlüssel müssen zuerst umgewandelt werden; das Tool sagt, wie.
Warum scheitert die Entschlüsselung?
Meist liegt es am Padding oder am Schlüssel. Entschlüsseln Sie mit demselben Padding wie beim Verschlüsseln und mit dem privaten Schlüssel, der zum verwendeten öffentlichen gehört; das Tool unterscheidet diese Fälle absichtlich nicht, probieren Sie also die anderen Paddings. Ein Geheimtext ist immer so lang wie der Schlüssel (256 Bytes bei einem 2048-Bit-Schlüssel); ein kürzerer wurde beim Kopieren abgeschnitten.