[PHP] Kryptologie

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Verschlüsselung von Daten. Dieses "Bedürfnis" ist (fast) so alt wie die Menschheit. Caeser hatte einen eigenen Verschlüsselungsalgorithmus entwickelt, der sich zu seiner Zeit sehen lassen konnte. Heute gibt es auch für die öffentlichkeit Verschlüsselungen wie in PHP. Zum Beispiel:

PHP:
sha1();
md5();
crypt();
mcrypt();
...

Aber der Nachteil ist, dass jeder den Weg einsehen kann, wie ein Wort verschlüsselt wird, und dieses auch so zurückschlüsseln kann.

Daher möchte ich einen eigenen Algorithmus entwickeln. Um jedoch einen eigenen zu entwickeln wäre es interessant wie die "Profis" das machen.
Bei Google fidet man eigentlich gar keine Ergebnisse, man kommt immer bei dem Selben raus: md5().

Ich hoffe auf Antoworten,
Viele Grüße,
CPU :rolleyes:
 
Ich will den sehen, der ein Wort, welches mit SHA1 verschlüsselt wurde, wieder "zurückschlüsseln" kann. ;)

Was hast du denn genau vor? Wozu brauchst du den Verschlüsselungsalgorithmus genau?
Mir scheint, du unterschätzt SHA1 und MD5 gewaltigt.
 
Hallo CPU,

md5 kann man nicht zurück entschlüsseln.
Dort kann nur mit BruteForce probiert werden, was bekanntlich sehr langedauert.
 
Hallo,

die Funktionen md5() und sha1() sind Einwegverschlüsselungen (Hashes) wie im obengenannten Beitrag können diese Verfahren nicht mehr rückgängig gemacht werden, um den Verschlüsselten Text wieder als Klartext anzuzeigen. (wie auch, eine 2 Millionen zeichenkette zu einer 32? und wieder zurück?)

Wenn du andere Algorithmen verwendest, kannst du den Text wieder entschlüsseln. Dabei kommt es jedoch noch darauf an ob du einen synchronen (gleicher schlüssel zum ent und verschlüsseln) oder asynchronen (verschiedene Schlüssel, public & secret key) Verschlüsselungsalgorithmus verwendest.
vgl. RC4, Blowfish, Twofish, RSA, XXTEA, AES

RC4, Blowfish und RSA sind als PEAR Pakete erhältlich http://pear.php.net sowie in der PHP extention mcrypt
edit: in Wikipedia sind viele der Verschlüsselungen erklärt. unteranderem RC4, Blowfish und RSA
 
Zuletzt bearbeitet:
Naja, in der PC-Welt war letztens so ein Viedeo dabei, wo ein MD5-Verschlüsselter Inhalt zurück geschlüsselt wurde, und da dachte ich halt ... :)

Aber zurück zu Frage: Mein Problem ist genau: Ich muss Informationen schützen, praktisch html - Quellcodes. Diese muss ich verschlüsseln und wieder zurückschlüsseln.

Dazu habe ich mir folgendes ausgedacht (nach Caesar halt):
PHP:
<?php
  $Str = "Hallo";

  for($i=0;$i<strlen($Str);$i++) {
     $Char = ord($Str[$i]);
     $Char = $Char + 5682;
     $Res .= chr($Char);
  }

  $Result = $Res;
?>

Die 5682 ist dann halt der Schlüssel, um den alles verschoben wurde, doch ich finde, dass dies ein bisschen einfallslos ist. Es gibt nur sehr "wenige" Möglichkeiten. Darauf habe ich mir gedacht, dass ich das ein bisschen umbaue:
Ich lasse den Benutzer eine Zahl eingeben, die 8-Stellig ist. Die ersten 4 Stellen bilden die Grundzahl, die Stellen 5-6 bilden die 1.Zahl und 7-8 bilden die 2.Zahl.
Damit generiere ich jetzt durch Rechnungen (-/+/*) 4-5 Zahlen.
Dann baue ich if-Schleifen, und sortiere die Buchstaben,Zahlen,Zeichen und verschiebe sie jeweils um den errechneten Wert.
Das funktioniert alles sehr gut, doch ich bekomme es nicht hin, dass dieser verschlüsselte String zurück geschlüsselt werden kann.

Ich vermute mal, dass sich bei meinem Verfahren irgentwelche Überschneidungen ergeben.

CPU
 
Wozu willst du HTML Quellcode verschlüsseln?

Und wieso benutzt du nicht einfach bereits existierende Methoden. Du weisst doch das man das rand nicht neu erfinden soll.

Gruß

tewes
 
Diese Verschlüsselung: Hier,
ist
keine
sicherer verschlüsselung
.
Kann man daran nicht ein bisschen modifizieren? Dass es sicherer wird.

Und was ist, wenn ich bsp. mit der Funktion crypt() den Text nach einem Zahlenstring verschlüssele?
 
Zuletzt bearbeitet:
Es gibt ja auch mehr als die Rot/Caeser Verschlüsselungen.
fliegekiller hat dir da einige genannt.
 
Hi,

kann mir jemand mal erläutern, nach welchem Schema diese (www.ifyouwantblood.de) Verschlüsselung funktioniert?

Strings aufteilen, durcheinanerwürfeln, verschlüsseln, wieso sollte ich denn da nur Textsalat rausbekommen?

CPU
 
Also zunächst mal:

Bei deinen ersten beiden "Beispielen" handelt es sich schonmal NICHT um Beispiele für Verschlüsselungen. SHA & MD5 sind nämlich Hash-Algorithmen, die nicht 'entschlüsselbar' sind (höchstens mittels BruteForce oder Rainbowtables angreiffbar, Entschlüsselung ist das aber nicht).
Crypt ist tatsächlich eine Verschlüsselungsmethode, kann aber nicht wirklich als sicher betrachtet werden, das es mit dem doch recht veralteten DES arbeitet.

Zu deiner ursprünglichen Frage hilft dir vielleicht zunächst der Wiki-Artikel zu Kryptographie, da gibts am Ende auch einige weiterführende Links.

Um deinen HTML Code zu verschlüsseln kommen Hashes natürlich nicht in Frage, logisch.

Allerdings wär es sehr interessant zu erfahren, wieso du überhaupt HTML verschlüsseln willst und was du dir davon erhoffst?
 
mach es doch so:

lade unter pear.php.net die den RC4 Algorithmus herunter.danach die datei includieren und den code ausführen: (brauchst nich alles zu verwenden (nur die Ausgabe kann weggelassen werden)

PHP:
$key = "SECRET KEY"; 
$message = file_get_contents('path/to/file');

//neues Objekt erzeugen
$rc4 = new Crypt_RC4; 

//schlüssel setzen
$rc4->key($key); 

//AUsgabe original msg
echo "Original message:" . $message; 

//msg verschlüsseln
$rc4->crypt($message); 

//ausgabe verschlüsselte msg
echo "Encrypted message:" . $message;

//datei speichern
file_put_contents($message, '/path/to/file');

//msg entschlüsseln
$rc4->decrypt($message); 

//ausgabe entschlüsselt
echo "Decrypted message:" $message;

et voila, deine datei ist verschlüsselt
 
Oh mit PEAR? Ich hoffe mal, dass es sicher ist. Muss den noch irgent eine "extrafunktion" von PHP aktiviert sein um dies nutzen zu können?

Allerdings wär es sehr interessant zu erfahren, wieso du überhaupt HTML verschlüsseln willst und was du dir davon erhoffst?

Ich mach gerade für nen Freund einen geschützten Bereich, der bestimte Daten enthält, die wirklich keiner sehen sollte! Ich erhoffe mir davon, dass das genze sicher ist. Ich habe auch schon divers. Sicherheitsmaßnahmen getroffen.
 
PEAR ist standartmässig in PHP integriert. du kannst die Dateien mittels include Befehl laden. (oder du lädst das paket herunter)

wieso sollte PEAR unsicher sein? es kommt ja auf de Algorithmus an, der die Daten verschlüsselt/entschlüsselt.

Wieso machtst du aus den HTML Dateien nicht auch noch PHP Dateien? die werden dann geparst. Dann Definierst du eine Konstante und wenn die beim anzeigen nicht vorhanden ist brichst du mit die() ab.

PHP:
//Datei index.php

if ($benutzer_ist_gültig) {
  define('_VALID_USER', true);
}

include 'secret.php';

//datei secret.php

//die Datei kann jetzt nur noch angezeigt werden, wenn du vorher die Konstante definiert hast.
defined('_VALID_USER') or die('No Access to this site');

<html>


</html>
 
Was sind denn das für Dateien?
Meinst du damit direkt die HTML Dateien oder pdf, etc?

Wenn du PDF etc meinst kann jeder auf die Datei zugreifen der den Pfad weiss, da müsstest du dann noch einen .htaccess schutz einbauen.

Grüße

tewes
 
Nicht zwingend. Du kannst die PDF Datei in eine php Datei einbetten und dann mittels headern die PHP Datei zu einer PDF Datei 'umwaldeln' indem du den Header und den Inhalt der PDF Datei ausgiebst. Jedoch dürfen die Header noch nicht gesendet worden sein.
 
Verschlüsselung halte ich in deinem Fall wirklich für unsinnig. Am sinnvollsten wäre imho das mit .htaccess zu regeln. Oder, wie schon vorgeschlagen, die zu schützenden Daten in eine PHP-Datei packen.

mfg
 
Hä?
Was soll der ganze Aufriss?
HTML kannst du nicht verschlüsseln. Du könntest es schon, aber dann könnte niemand es lesen. Und das bringt dich nicht weiter. Wenn der ausgelieferte Inhalt verschlüsselt sein soll dann benötigst du einen Client der den ganzen Murks wieder entschlüsseln kann.
Wenn einfach der Transportweg übers Netz verschlüsselt sein soll dann besorg die ein SSL Zertifikat.

Ansonsten: Wie schon geschrieben. Htaccess, geschützte Bereiche der Webseite, Download von Passwortgeschützen Dateien...

Also ich blick irgendwie garnicht was du vorhast!?!
 
Zurück
Oben