
138701
07.06.2020
Sichere Verschlüsselung
Hallo zusammen,
Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:
1. Ich kann mich nicht für eine Methode entscheiden... Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere. Im Manual wird aes-256-gcm verwendet, weswegen ich es zuerst damit versuchte. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...
2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.
Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:
1. Ich kann mich nicht für eine Methode entscheiden... Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere. Im Manual wird aes-256-gcm verwendet, weswegen ich es zuerst damit versuchte. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...
2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.
Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 577664
Url: https://administrator.de/forum/sichere-verschluesselung-577664.html
Ausgedruckt am: 17.05.2025 um 00:05 Uhr
18 Kommentare
Neuester Kommentar
Moin,
Gruß
cykes
Zitat von @138701:
Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
Schön, aber zu welchem Anwendungszweck genau? Geht es Passwörter? Was ist für Dich "gut", also Dein Bewertungskriterium?Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:
Dann verwende eben openssl_encrypt, wenn Du Dir selbst diese Vorgaben machst.1. Ich kann mich nicht für eine Methode entscheiden...
Bei der Entscheidungsfindung können wir Dir auch eher schlecht helfen, dennImmerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere.
Da wirst Du wohl alle 50+ durchgehen müssen und für Dich bewerten müssen.[...] aes-256-gcm [...]. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...
Naja, aber was erwartest Du denn bei Verschlüsselung, wenn es nicht nur ein Ersetzungsalgorithmus ist? Du musst immer irgendwie den Schlüssel mit übertragen, sonst kann das Gegenüber damit rein gar nichts anfangen. Auch wenn der Schlüssel separat übertragen wird, nimmt er dennoch Speicherplatz ein.2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.
Siehe obenWie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Die Verabeitungsgeschwiundigkeit dürfte wohl stark systemabhängig sein. Du wirst nicht umhinkönnen, Dich etwas intensiver mit den verschiedenen Algorithmen auseinanderzusetzen. Es bringt Dir ja auch nichts, wenn wir hier jetzt anfangen, andere Algorithmen vorzuschlagen bzw. aufzulisten, die Dir dann aus dem einen oder anderen Grund nicht passen. Mit Deinen Vorgaben wirst Du aber nichts optimal passendes finden. Irgendwo wirst Du einen Kompromiss eingehen oder das Ding selbst programmieren müssen.- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Gruß
cykes

Hallo,
warum?
Passwörter werden gehasht und Authentifizierung erfolgt durch Zertifikate.
Gruß,
Jörg
warum?
Passwörter werden gehasht und Authentifizierung erfolgt durch Zertifikate.
Gruß,
Jörg
Zitat von @138701:
Hallo zusammen,
Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:
1. Ich kann mich nicht für eine Methode entscheiden... Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere. Im Manual wird aes-256-gcm verwendet, weswegen ich es zuerst damit versuchte. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...
Hallo zusammen,
Ich brauche eine gute Verschlüsselungsmethode für einen kurzen String (<100 Zeichen).
openssl_encrypt scheint die einzige Option zu sein, denn ich möchte keine externen Libraries benutzen und auch nicht mit MCrypt arbeiten. Jetzt habe ich zwei Probleme:
1. Ich kann mich nicht für eine Methode entscheiden... Immerhin gibt es mindestens 50 und jeder Programmierer im Web empfiehlt eine andere. Im Manual wird aes-256-gcm verwendet, weswegen ich es zuerst damit versuchte. Doch bei der Entschlüsselung werden nicht nur der Ciphertext und der Schlüssel verwendet, sondern ein IV und TAG werden ebenfalls benötigt. Wenn ich die beiden jedes Mal in den Ciphertext reinmische, wird dieser so lang, dass er meiner Meinung nach zu viel Speicher verwendet. Der String sollte möglichst nicht länger werden...
Moin,
Wenn Du "die beste Verschlüsselung willst", mußt Du die Vollbitverschlüsselung vom Kryptochef nehmen (leider nur noch über archive.org erreichbar https://web.archive.org/web/20060604033443/http://kryptochef.de/ ).
Ansonsten mußt Du Dir einen Benchmark ausdenken und die veschiedenen Verfahren gegeneinander testen. Denn wir können nicht für Dich das nciht entscheiden.
Die Frage ist doch auch , welchem Verwendungszweck das ganze dient. Ich nehme z.B. gerne gpg, wenn ich veschlüsselte Dateien oder Dokumente übertragen will. Das geht natürlich auch mit kurzen strings über eine Pipe.
2. Egal wie ich arbeite, der Ciphertext ist immer mindestens 33% größer als der originale Text.
Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Wie sähe ein möglicher Code aus, der
- Schnell verarbeitet wird (<0.4s)
- Einen möglichst kurzen Ciphertext erstellt
- Und sicher ist?
Du bist Dir aber schon bewußt, daß diese drei Kritereien gegeneinander arbeiten. Wenn etwas sicher sein soll, darf das nicht auf Kosten der Zeit udn irgendwelchen Größenbeschränkungen gehen. (z.B. alle Schlösser am Haus abzuschließen dauert länger als wenn man nur die Tür zu zieht)
Wenn etwas schnell verarbeitet wird, hat man keine Zeit, das nach Platz oder Sicherheit zu optimieren. (z.B. alle Schlösser am Haus abzuschließen dauert länger als wenn man nur die Tür zu zieht)
Wenn etwas wenig Platz brauchen soll, mußt Du mehr Zeit investieren.
Außerdem definiert sich "sicher" über die Art der Angriffe, gegen die man sich absichern will. es nützt nichts, sich einen Super-Duper-Safe hinzustellen, in den man nicht ohne weiteres reinkommt, wenn man den "einfach mit dem Auto klauen kann".
Es hilft nichts, Du mußt selbst Hand anlegen und testen.
Und vor allem mal sagen, wofür das gut sein soll.
lks
Edit: Hat sich mit dem Post vom TO überschnitten.
Ehrlich gesagt würde ich da einfach ne Standard-Version nehmen und drauf ka ob da jetzt 20% mehr is. Denn du hast ja dann eh protokoll-overhead mit drin. Wenn du jetzt nicht grade auch nen File-Transfer mit hast bei dem du eben relevante Grössen erreichst sollte das passen.
Jetzt kommt es dann eher darauf an was du genau machst... Wenn du einen 1:1 Chat baust ist das ganze kein problem mit der Verschlüsselung, bei einem 1:n oder n:n kann das halt etwas aufwendiger werden (oder du gehst auf Serverbasiert).
Jetzt kommt es dann eher darauf an was du genau machst... Wenn du einen 1:1 Chat baust ist das ganze kein problem mit der Verschlüsselung, bei einem 1:n oder n:n kann das halt etwas aufwendiger werden (oder du gehst auf Serverbasiert).

Hallo,
Wie gesagt - das ist absoluter Humbug was Du da vor hast.
Hier wendet man das so genannte "Private Key" Verfahren an: https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
Ich kann mir auch vorstellen, dass da schon diverse vorgefertigte Libraries usw. gibt - ich persönlich nutze PGP seit 1995.
Gruß,
Jörg
Zitat von @138701:
Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)
Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)
Wie gesagt - das ist absoluter Humbug was Du da vor hast.
Hier wendet man das so genannte "Private Key" Verfahren an: https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
Ich kann mir auch vorstellen, dass da schon diverse vorgefertigte Libraries usw. gibt - ich persönlich nutze PGP seit 1995.
Gruß,
Jörg
Zitat von @117471:
Hallo,
Wie gesagt - das ist absoluter Humbug was Du da vor hast.
Hier wendet man das so genannte "Private Key" Verfahren an: https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
Ich kann mir auch vorstellen, dass da schon diverse vorgefertigte Libraries usw. gibt - ich persönlich nutze PGP seit 1995.
Hallo,
Zitat von @138701:
Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)
Ich habe einen Chatroom programmiert und möchte die einzelnen Nachrichten verschlüsseln, sodass sie nur für ausgewählte Benutzer sichtbar sind (Jeder Benutzer hat einen eigenen Code)
Wie gesagt - das ist absoluter Humbug was Du da vor hast.
Hier wendet man das so genannte "Private Key" Verfahren an: https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
Ich kann mir auch vorstellen, dass da schon diverse vorgefertigte Libraries usw. gibt - ich persönlich nutze PGP seit 1995.
/me 2 seit 1991/1992. genau weiß ich es nicht mehr, aber ich wollte damals das "komische Tool" relativ bald nach erscheinen ausprobieren.
Inzwischen nutze ich gpg.
lks

Hallo,
Ich gar nichts. Ich habe festgestellt, dass meine E-Mail-Partner durch die Signatur eher mißtrauisch werden als dass diese Vertrauen schafft.
Gruß,
Jörg
Ich gar nichts. Ich habe festgestellt, dass meine E-Mail-Partner durch die Signatur eher mißtrauisch werden als dass diese Vertrauen schafft.
Gruß,
Jörg
Zitat von @117471:
Ich gar nichts. Ich habe festgestellt, dass meine E-Mail-Partner durch die Signatur eher mißtrauisch werden als dass diese Vertrauen schafft.
Ich gar nichts. Ich habe festgestellt, dass meine E-Mail-Partner durch die Signatur eher mißtrauisch werden als dass diese Vertrauen schafft.
Ich nutze gpg selektiv, d.h. zu Partnern, die etwas damit anzufangen wissen, bzw. denen ich erklärt habe wie das funktioniert.
Bei anderen nutze ich für die Vertrauliche Übertragung andere verfahren.
lks

Zitat von @138701:
Und wie benutze ich pgp in PHP?
Nativ ... RTFM => https://www.php.net/manual/de/book.gnupg.phpUnd wie benutze ich pgp in PHP?

Hallo,
Dann kannst Du das Gewünschte leider nicht mit deinen Ressourcen umsetzen.
Gruß,
Jörg
Zitat von @138701:
Ich hoste meine Website und habe dadurch keinen Zugriff auf die PHP-Installation oder die php.ini
Ich hoste meine Website und habe dadurch keinen Zugriff auf die PHP-Installation oder die php.ini
Dann kannst Du das Gewünschte leider nicht mit deinen Ressourcen umsetzen.
Gruß,
Jörg