CakePHP

Bei Cakephp handelt es sich um ein PHP-Framework, dass auf dem MVC-Prinzip basiert. Ein Framework nimmt dem Entwickler viele Entwicklungsschritte ab, so dass er sich auf das wesentliche konzentrieren kann. CakePHP ist sehr einfach zu benutzen und kann auch von Einsteigern schnell erlernt werden.

Wer sich mit Cakephp beschäftigen möchte, sollte sich das 15-Minuten Blog-Tutorial ansehen. Es zeigt die Entwicklung eines einfachen Blogs in Cake und ist in sehr leicht versändlichem englisch geschrieben. Wer dennoch ein deutschsprachiges Tutorial bevorzugt, findet ein ähnliches Tutorial bei DieVolution.

Eine weitere Möglichkeit ist das Cookbook (Kochbuch) mit Rezepten (Codeschnipseln) die Aufgaben in Cake lösen.

Video mit validem XHTML einbinden

Das häufig benutzte embed-Element ist leider nicht valide. Folgendermaßen kann man ein Video allderings fehlerfrei einbinden:

 
<object type="application/x-shockwave-flash" style="width:310px; height:278px;" data="DER PFAD" /><param name="movie" value="DER PFAD" style="display:none" /><param name="wmode" value="opaque" /></object>
 

haml und sass

Kennt jemand haml und sass? Bietet die Möglichkeit, html und css viel einfacher zu schreiben, zu schachteln, Konstanten in CSS zu verwenden und so weiter. Unbedingt anschauen, lohnt sich wirklich!

Joomla barrierefrei

Ein barrierefreies Template für Joomla? Das gibt es. Meinem Empfinden nach, leicht einzubauen und nach eigenen Ansprüchen zu gestalten. In diesem Falle ist es der Joomla Community mal wieder gelungen einen großen Wurf zu machen.

Kryptografie mit PHP

Verschlüsselung mit PHP

Beim Basteln eines Projekts bin ich mit Kryptorafie mit PHP in Berührung gekommen. Da ich selbst relativ wenig Erklärungen im Internet gefunden habe, stelle ich hier ein kleines Beispielscript, mit mcrypt vor. Ich setze bei diesem Beitrag ein bisschen Grundwissen in Kryptografie heraus.

Verschlüsselung und Entschlüsselung einer Zeichenfolge

mcrypt ist eine PHP-Erweiterung, die Methoden zur Datenschlüsselung mit Algorithmen wie zum Beispiel TirpleDES und Blowfish bietet. In dem Beispiel Script verschlüssel ich einen String mit meinem geheimen Schlüssel. Der geheime Schlüssel dient zur Ver- und Entschlüsselung und ist somit wie ein Passwort anzusehen.

 
 
  // Anwendungsbeispiel Verschluessellung und anschliessende Entschuesselung
 
  // der Schluessel und die geheime Zeichenkette
  $key = "geheimer Schluessel";
  $txt = "Wichtige Daten, die verschluesselt werden muessen.";
 
  // Initialisierung der Verschluesselungsmethoden
  $td = mcrypt_module_open("blowfish" , "" , "ecb" , "");
  $key = substr($key , 0 , mcrypt_enc_get_key_size( $td ));
  $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size( $td ) , MCRYPT_RAND );
 
  // Verschluessellung
  mcrypt_generic_init( $td , $key , $iv );
  $encrypted = mcrypt_generic( $td , $txt );
  mcrypt_generic_deinit( $td );
  echo $encrypted;
  echo "\n";
 
  // Entschluessellung
  mcrypt_generic_init( $td , $key , $iv );
  $decrypted = mdecrypt_generic( $td , $encrypted );
  mcrypt_generic_deinit( $td );
  echo $decrypted;
  mcrypt_module_close( $td );
 
  // Das war das komplette Script.
  // Viel Spass beim Ausprobieren
 
?&gt;

Erklärung der Funktion des php-Script

Mit mcrypt_module_open("blowfish" , "" , "ecb" , ""); initialisieren wir die Mechanismen der mcrypt-Bibiliothek. Das erste Attribut bezeichnet das verwendete Modul, das dritte Attribut den gewünschten Verschlüsselungsbtrieb - in unserem Fall ECB. Das Zweite und das Dritte Attribut können leer gelassen werden und werden aus der php.ini gezogen.

Als nächstes muss der sogenannte Initialisierungsvektor erstellt werden. Dies geschieht mit mcrypt_create_iv(mcrypt_enc_get_iv_size( $td ) , MCRYPT_RAND );. Die Attribute bezeichnen die Vektorgröße und die Quelle der zufallsbasierten Daten. Die verwendete MCRYPT_RAND-Konstante emrpfielt sich hierbei, da diee sowohl unter Linux, wie auch unter Windows funktioniert.
Nach diesen Beiden Schritten ist die mycrypt-Bibiliothek bereit zu verschlüsseln.

Zuerst müssen wir ensprechend viel Speicherplatz reservieren. Dabei bedienen wir uns mcrypt_generic_init( $td , $key , $iv ); und übereichen somit die vorher erzeugten Modul- und Initialisierungshandels, sowie den Wert des Schlüssels. Der Schlüssel wird übrigens automatisch auf die Maximallänge des Algorithmus beschnitten.

Nun folgt ein Aufruf von $encrypted = mcrypt_generic( $td , $txt );, dessen Ausgabe die verschlüsselte Zeichenkette ist. Als letztes wird mit mcrypt_generic_deinit( $td ); der reservierte Speicher wieder freigegeben und durch mcrypt_module_close( $td ); die Arbeit von mycrypt beendet. Die Entschlüsselung der Zeichenkette erfolgt identisch, allerdings muss mcrypt_generic durch mdecrypt_generic ersetzt werden.

Weitere Informationen

Abschließend habe ich in der nachfolgenden Tabelle versucht weiterführende Informationen zum Thema Kryptografie in PHP zusammenzufassen. Das Beispielscript ist nur ein minimaler Einstieg, zeigt aber relativ schnell die Funktion einer Verschlüsselung in php.

Konstantenname Eingesetzter Algorithmus Schlüsellänge Blocklänge
MCRYPT_BLOWFISH Blowfish variabel, bis 448 64
MCRYPT_3DES Dreifaches DES-Verfahren 168 64
MCRYPT_DES DES 56 64
Konstantenname Beschreibung
MCRYPT_MODE_ECB Electronic Code Book
MCRYPT_MODE_CFB Cipher Feedback
MCRYPT_MODE_NOFB Output Feedback mit der Zahl der Feedback-Bits, die der Größe des Algorithenblocks gleicht