Wie kann ich selbt den Code für base64_encode() bestimmen?

Alles, was PHP betrifft, kann hier besprochen werden.

Wie kann ich selbt den Code für base64_encode() bestimmen?

Postby Sandro » 29. March 2008 12:49

Hallo,
bei der Nutzung der Funktion base64_encode() möchte ich selbst den Code bestimmen, mit dem codiert wird, z.B. $code=“ABCgKf ... 64“;

Auf PHP-Seite hat schon jemand so eine Funktion geschrieben, leider hat diese ein Bug, und zwar die Zeichenkette, die codiert werden soll, muss eine Länge haben, die durch 3 teilbar ist. :shock:
Ich habe viel gegoogelt, leider habe ich nichts Weiteres gefunden.

Kennt jemand vielleicht eine bessere Funktion oder mir einen Tipp geben?

Vielen Dank im Voraus
Gruß, Sandro
Code: Select all
function base64_encode($input) {
       
        $output = "";
        $chr1 = $chr2 = $chr3 = $enc1 = $enc2 = $enc3 = $enc4 = null;
        $i = 0;
       
//        $input = self::utf8_encode($input);
       
        while($i < strlen($input)) {
            $chr1 = ord($input[$i++]);
            $chr2 = ord($input[$i++]);
            $chr3 = ord($input[$i++]);
           
            $enc1 = $chr1 >> 2;
            $enc2 = (($chr1 & 3) << 4) | ($chr2 >> 4);
            $enc3 = (($chr2 & 15) << 2) | ($chr3 >> 6);
            $enc4 = $chr3 & 63;
           
            if (is_nan($chr2)) {
                $enc3 = $enc4 = 64;
            } else if (is_nan($chr3)) {
                $enc4 = 64;
            }
           
            $output .=  self::$BinaryMap[$enc1]
                      . self::$BinaryMap[$enc2]
                      . self::$BinaryMap[$enc3]
                      . self::$BinaryMap[$enc4];
        }
       
        return $output;
    }

Sandro
 
Posts: 22
Joined: 03. October 2006 17:48

Postby Wiedmann » 29. March 2008 13:39

bei der Nutzung der Funktion base64_encode() möchte ich selbst den Code bestimmen,

Wenn das gehen würde, wäre der String ja nicht mehr nach base64 (ein Standard) kodiert, womit die Funktion nicht mehr diesen Namen tragen dürfte...

Bleibt also die Frage, warum willst du den "Code" selbst bestimmten?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sandro » 29. March 2008 14:18

Hallo,
vielleicht habe ich mich falsch ausgedrückt. Ich brauche eine Funktion wie base64. Damit möchte ich meine Nachrichten über Netz/ Internet codieren. Das heißt vor dem Senden der Nachtrichten codiere ich sie mit dem Code, den ich selbst bestimmt habe z. B. (ABCKU …64). Wenn ich Sie z.B. per E-Mail empfangen habe, kann sie wieder mit demselben von mir bestimmten Code (ABCKU …64) decodieren.

Da ich den Code, mit dem codiert wird, selbst bestimme, wird es gleichzeitig eine kleine “Verschlüsselung“ durch geführt.

Wie bereits geschrieben, die gesendete Funktion zwar hat ein Bug, aber sie funktioniert (s. oben).

Gruß, Sandro
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48

Postby Wiedmann » 29. March 2008 14:24

Das heißt vor dem Senden der Nachtrichten codiere ich sie mit dem Code, den ich selbst bestimmt habe z. B. (ABCKU …64). Wenn ich Sie z.B. per E-Mail empfangen habe, kann sie wieder mit demselben von mir bestimmten Code (ABCKU …64) decodieren.

Ich schätze, du suchst die "Mcrypt" Extension.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sandro » 29. March 2008 14:43

Genau, so etwas möchte ich machen! Darauf bin ich auch gestoßen. Aber da ich meine Daten/ Nachrichten eventuell auch per Javascript bearbeiten möchte, Habe ich darauf verzichtet.

Denn so eine Funktion wie “Base64“ mit der ich selbst den Code zur Codierung bestimmen kann, habe ich schon für Javascript. Dann kann ich mit dem von mir bestimmten Code in PHP als auch in Javascript meine Daten bearbeiten.

Gruß, Sandro
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48

Postby Wiedmann » 29. March 2008 14:54

Aber da ich meine Daten/ Nachrichten eventuell auch per Javascript bearbeiten möchte, Habe ich darauf verzichtet.

Für einen Alogarythmus den Mcrypt kennt, sollte es auch passende JavaScript Library geben (des, 3des, blowfish sind ja alles Standards)


Denn so eine Funktion wie “Base64“ mit der ich selbst den Code zur Codierung bestimmen kann, habe ich schon für Javascript.

Dann schreib halt die Javascript-Funktion für PHP um. Letztendlich geht es ja um irgendeine eigene Funktion die was mit einem String macht, und nicht um base64.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sandro » 29. March 2008 14:59

Ok, danke für die Tipps. Ich werde mir die “des, 3des, blowfish“ anschauen.

Gruß, Sandro
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48


Return to PHP

Who is online

Users browsing this forum: No registered users and 1 guest