String verschlüsseln/entschlüsseln

seVes

Grünschnabel
Servus Leute!

Sorry für diese etwas anfängerliche Frage, aber ich denke es gibt sicherlich eine einfachere Lösung als die mir bekannte.

Ich möchte einen String verschlüsseln und wieder entschlüsseln.

Beispiel:

URL: h**p://www.xyz.de/index.php?page=videoplayer&id=n1ih16k
Verschlüsselt: n1ih16k
Entschlüsselt: ./media/galleries/001.flv
String: ./media/galleries/001.flv

(Werte sind jetzt alle nu frei erfunden)

Hintergrund:

Ich möchte nicht, dass eine Pfadangabe in der URL mitgegeben wird, sondern mehr oder weniger eine Art ID.
Diese ID wird dann mit PHP entschlüsselt und ergibt am Ende ein String, welcher von JW-Player benutzt wird um ein Video zu laden.

Wie mach ich das?

Ich kenn jetzt mcrypt, allerdings find ich das etwas zu komplex für das Ganze!? Gibts da nicht eine fertige Funktion bereits in PHP, statt eine Extension?
 
Mal wieder nicht ganz gelesen, mein Fehler.

PHP-Core kennt keine Verschlüsselung, die in beide Wege funktioniert, sondern nur Ein-Wegs-Verschlüsselungen bzw. Hashes.

Von daher wirst du wohl auf [phpf]mcrypt[/phpf] ausweichen müssen oder dir selbst etwas basteln.
 
Jop, stimmt.

Hab dies nun mit Mcrypt probiert und auch ansich hinbekommen.
Nun stört mich aber, dass bei php.net ein Deprecated beim ECB-Mode steht.

Soweit nicht schlimm, ausser dies wird irgendwann "rausgenommen". Alle anderen Modes geben keinen eindeutigen Encrypted-Key zurück, sondern dieser ändert sich jedes mal.

Sehr merkwürdig...
 
PHP:
<?php

    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";
	
    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    
    $decryptedtext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
	
	
     echo $crypttext.'<br/>'.$decryptedtext;
?>

Funktioniert bei mir einwandfrei... Sindeinfach nur zwei Beispiele von [phpf]mcrypt_encrypt[/phpf] und [phpf]mcrypt_decrypt[/phpf] zusammengefügt.
 
Zurück