php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2009, 10:20  
Neuer Benutzer
 
Registriert seit: 20.09.2009
Beiträge: 23
PHP-Kenntnisse:
Anfänger
Garog befindet sich auf einem aufstrebenden Ast
Standard Link verschlüsseln und wieder entschlüsseln

Hallo, ich habe ein Formular, mit mehreren Eingabefelder und Auswahlfelder.

Die dort eigegebenen und ausgewählten Daten übergebe ich an eine zweite .php Datei.

In der zweiten .php Datei hole ich mir die Daten mit $_GET wieder rein.

Da es recht viele Daten sind, wird der Link mit der .php Datei sehr lang.
Zusätzlich sicht der Benutzer auch sämtliche Eingaben und Auswahlen im Klartext

Bsp.:
PHP-Code:
?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png 
Ich möchte das ganze jetzt aber etwas verschlüsseln. Ich habe bereits den Link mit einer XOR Verschlüsselung verschlüsselt.
Soweit klappt das alles ganz gut.
Dazu habe ich ein Beispiel aus dem Gulliboard genutzt.

PHP-Code:
<?php 

// XOR "Verschlüsselung" 
function x0rcrypt($text$schluessel) { 
    if (
strlen($schluessel) == 0) { 
        return; 
    } 
    
$ergebnis ''
    
$i 0
    while (
$i strlen($text)) { 
        for (
$j=0$j strlen($schluessel); $j++) { 
            if (
$i >= strlen($text)) { 
                break; 
            } 
            
// Text XOR Schuessel 
            
$ergebnis .= $text{$i} ^ $schluessel{$j}; 
            
$i++; 
        } 
    } 
    return(
$ergebnis); 


// Hex nach Bin 
// (triviale Funktion, aber vielleicht anschaulicher) 
function hex2bin($string) { 
    return 
pack('H*'$string); 


// Verschlüsseln, Rückgabe in Hex 
// (triviale Funktion, aber vielleicht anschaulicher) 
function x0rencrypt($text$schluessel) { 
    return 
bin2hex(x0rcrypt($text$schluessel)); 


// Entschlüsseln, Eingabe in Hex 
// (triviale Funktion, aber vielleicht anschaulicher) 
function x0rdecrypt($text$schluessel) { 
    return 
x0rcrypt(hex2bin($text), $schluessel); 


// Beispielcode: 
$text 'Blah Blubb'
$schluessel 'geheimesganzlangesultrakompliziertesPasswort'

// Verschlüsseln 
$text_encrypted x0rencrypt($text$schluessel); 

// Und weil's so schön ist: Entschlüsseln 
$text_decrypted x0rdecrypt($text_encrypted$schluessel); 

echo 
"Original: <pre>$text</pre>" 
    
."Encrypted (Hex-Darstellung):<pre>".$text_encrypted."</pre>" 
    
."Decrypted:<pre>$text_decrypted</pre>"
   
?>
damit komme ich auch ganz gut klar.

allerdings weiß ich nicht wie ich in der zweiten .php Datei das entschlüsselte egebnis in Variablen bekomme.

Entschlüssel ich es habe ich in der Datei ja wieder nur
PHP-Code:
?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png 
was so ja nicht funktioniert.

Jetzt suche ich natürlich eine Lösung oder ein ganz anderen Ansatz wie ich einen Link entsprechend verschleiern kann.
Garog ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.10.2009, 10:59  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ich glaub ich verstehe das Problem nicht ganz...
Den Link verschlüsseln geht nicht - der muss vom Browser interpretiert werden können, aber die Parameter verschlüsseln geht, hast du ja schon getan.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 01.10.2009, 12:06  
Benutzer
 
Benutzerbild von kremser
 
Registriert seit: 25.02.2008
Beiträge: 55
PHP-Kenntnisse:
Anfänger
kremser befindet sich auf einem aufstrebenden Ast
Standard

Am besten, du verwendest Sessions!

Am Anfang des Dokumentes ein
PHP-Code:
session_start(); 
rein und schon kannst du beliebig Sessions definieren und abfragen!

Bsp:
PHP-Code:
$_SESSION['daten'] = "Wert"

Geändert von kremser (01.10.2009 um 12:29 Uhr).
kremser ist offline  
Alt 01.10.2009, 12:06  
Neuer Benutzer
 
Benutzerbild von Deekay
 
Registriert seit: 25.09.2009
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
Deekay befindet sich auf einem aufstrebenden Ast
Standard

Code:
$decrypted_link = "?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png";

$parameter = explode("&",$decrypted_link);
foreach($parameter AS $data)
{
    $data = explode("=",$data);
}

//Ergibt $data[0] == "char", $data[1] == "name"
//Ergibt $data[0] == "klasse", $data[1] == "keine"
//usw...
Ich hoffe ich hab dein Problem richtig verstanden
Deekay ist offline  
Alt 01.10.2009, 12:12  
Erfahrener Benutzer
 
Registriert seit: 28.08.2009
Beiträge: 233
PHP-Kenntnisse:
Anfänger
Steve befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Garog Beitrag anzeigen
Da es recht viele Daten sind, wird der Link mit der .php Datei sehr lang.
Zusätzlich sicht der Benutzer auch sämtliche Eingaben und Auswahlen im
Code:
<form method="post" ...
Die Parameter dann über $_POST holen.
Steve ist offline  
Alt 01.10.2009, 17:23  
PTC
Erfahrener Benutzer
 
Benutzerbild von PTC
 
Registriert seit: 27.10.2007
Beiträge: 1.708
PHP-Kenntnisse:
Anfänger
PTC ist einfach richtig nettPTC ist einfach richtig nettPTC ist einfach richtig nettPTC ist einfach richtig nett
Standard

Vielleicht kann dir das helfen?
PHP: mcrypt_cbc - Manual
PTC ist offline  
Alt 01.10.2009, 19:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Am besten, du verwendest Sessions!
Nö, das macht gar keinen Sinn. Denn um die Session zu füllen, muss man die Parameter immer erstmal abschicken.

Die Frage ist doch, vor wem die Parameter verborgen werden sollen (und warum). Abhängig davon könnten

SSL / https
POST

oder dergl. die Antwort sein.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 01.10.2009, 20:00  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

POST oder Sessions sind der einzig sinnvolle Weg, um die Werte nicht in der URL erscheinen zu lassen. Falls die Daten wirklich verschlüsselt werden sollen musst du aber HTTPS verwenden. Eine Verschlüsselung der POST-Werte mit Mcrypt ist relativ sinnlos, da das nur server-seitig möglich ist (zumindest kenne ich keine JS-Implementierung), was bedeutet, dass die Daten zumindest einmal unverschlüsselt zum Server übertragen werden müssen.
Chriz ist gerade online  
Alt 01.10.2009, 20:51  
Neuer Benutzer
 
Registriert seit: 20.09.2009
Beiträge: 23
PHP-Kenntnisse:
Anfänger
Garog befindet sich auf einem aufstrebenden Ast
Standard

uhi, danke für die vielen Antworten, hatte leider einen langen Arbeitstag.

Also mit "Link verschlüsseln" meine ich das ich die klartextanzeige weg haben möchte.

Mein Link für eine Datei sieht ja jetzt z.B. wie folgt aus.
PHP-Code:
?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png 
wenn der benutzer das sieht kann er natürlich an der sicherheit und definitionen (nur 6 Buchstaben, keine Zahlen z.B.) des formulars vorbei und kann dort ändern was er will und eventuell code selbst einschleusen und sieht die dateipfade etc...

Das möchte ich aber nicht, daher hatte ich an den weg einer XOR Verschlüsselung gedacht.
So kann ich den klartext mit einem Passwort codieren und es in einer anderen Datei wieder decodieren, in beiden dateien steht natürlich das passwort.

mit sessions muss ich gestehen habe ich noch die etwas gemacht aber was ich kurz nachgelesen habe klingt gut.

was Deekay geschrieben hat ist aber glaube ich genau die Lösung von dem was ich wollte.

Ich verschlüssel mit dem script den link
PHP-Code:
test.php?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png 
daraus wird dann ein
PHP-Code:
test.php?einstellungen=2394jr92z2f98zb9f8639846234bb6346b986f3987j 
Das wird dann mit dem Passwort in der zweiten Datei wieder entschlüsselt.
Hier hatte ich dann nur das problem das in einer variable dann
PHP-Code:
?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png 
drin steht, was mich bisher nicht weiter gebracht hat, da ich das ganze ja wieder trennen muss.

Deekay hat da für meinen Gedanken denke ich die richtige Lösung genannt, ich werde es gleich mal testen und gebe dann bescheid
Garog ist offline  
Alt 01.10.2009, 21:18  
Neuer Benutzer
 
Registriert seit: 20.09.2009
Beiträge: 23
PHP-Kenntnisse:
Anfänger
Garog befindet sich auf einem aufstrebenden Ast
Standard

Also wenn ich mir mit echo angucke was in $data[0] drin steht, dann bekomme ich nur "generate" bei raus.

der originallink endet mit

PHP-Code:
&rahmen=&mdsumme=3e06d1aa1cb1084f0248762e97ade1d1&generate
ich verstehe bestimmt die funktion falsch oder ?
bei jedem durchlauf füllt sie nur ein element und erstellt kein 2 dimensionales array mit den werten...

oder macht es das doch *man ist das spät *

[Edit] ne... eigentlich sollte explode doch jedesmal ein neues element im array anlegen wenn das definierte trennzeichen auftritt.
ich werde mal noch nen bissel fummeln...

Zitat:
Zitat von Deekay Beitrag anzeigen
Code:
$decrypted_link = "?char=name&klasse=keine&fraktion=eine&legion=deine&banner=eingutes.png";

$parameter = explode("&",$decrypted_link);
foreach($parameter AS $data)
{
    $data = explode("=",$data);
}

//Ergibt $data[0] == "char", $data[1] == "name"
//Ergibt $data[0] == "klasse", $data[1] == "keine"
//usw...
Ich hoffe ich hab dein Problem richtig verstanden
Garog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
link -> get variabeln auslesen clemo PHP Tipps 2009 10 25.09.2009 02:16
[Erledigt] gesamte Spalte in Array abspeichern Kotbatzen PHP Tipps 2009 23 05.09.2009 00:01
Link mit ID in Echo einbinden Mitch26 PHP Tipps 2009 4 06.08.2009 17:02
[Erledigt] mail() mit &lt;a herf... Link in Html Mail geht nicht!? BettinaSyn PHP Tipps 2009 11 16.05.2009 22:28
erst beim zweiten Login funktioniert Link scarry_77 PHP Tipps 2009 5 14.04.2009 00:35
PHP Verschlüsseln und Entschlüsseln thiagojonas Datenbanken 21 19.02.2009 14:22
Klick auf Seitenobjekt (Link mit onClick Ereigniss) mit JScript simulieren Stephan_87 JavaScript, Ajax und mehr 1 22.12.2008 21:50
[Erledigt] Teil eines Wertes verschlüsseln und später wieder entschlüsseln? BartTheDevil89 PHP Tipps 2008 8 12.08.2008 12:41
Daten aus MySQL-abfrage zum Link mit id zusammensetzen maccoder Datenbanken 2 13.09.2005 16:49
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Verschlüsseln und wieder Entschlüsseln Igäl PHP Tipps 2005 2 03.05.2005 13:46
verschlüsseln und entschlüsseln PHP Tipps 2004 4 24.07.2004 17:24
absoluter link PHP Tipps 2004 10 01.07.2004 23:00
Passwort verschlüsseln und wieder entschlüsseln PHP Tipps 2004 8 26.06.2004 18:15
PHP Link ??? PHP Tipps 2004 4 25.06.2004 17:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
link verschlüsseln, link codieren, php link verschlüsseln, link verschlüsseln php, php url verschlüsseln, http://www.php.de/php-einsteiger/59518-link-verschluesseln-und-wieder-entschluesseln.html, php verschlüsseln entschlüsseln, link crypten, url verschlüsseln php, links verschlüsseln php, links codieren, php codieren, php link codieren, xor verschlüsselung php, link entschlüsseln, link decodieren, php verschlüsseln, php links verschlüsseln, link kodieren, links entschlüsseln

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum