2010-11-06 2 views
1

Je crée une chaîne et le placer dans un cookie comme celui-ci:Besoin de "déchirer" une partie de cette chaîne et le placer dans une variable, comment?

$cookie_value = $salt1.':'.$username.':'.sha1($row['alt_username']); 
//THEN INSERT INTO COOKIE 

Je parcoura les cookies comme ceci:

$data = $_COOKIE['cookie_name']; 

Je dois prendre le nom d'utilisateur de $ sur les données dans le cookie. Comment puis-je le faire?

Comme vous pouvez le voir, le nom d'utilisateur est entouré de deux-points.

Merci

+0

Veuillez fournir un exemple de valeur de $ cookie_value. – cherouvim

+0

Je n'ai pas de valeur d'exemple standard. Comme vous le voyez, le sha1 et le sel pourraient être tout ce que je crois. Au moins je le pense. Je peux cependant, changer le motif si vous le souhaitez, mais il doit rester sécurisé! –

+0

Si le sel est vraiment quelque chose alors vous aurez un sérieux problème quand il contient ":". – cherouvim

Répondre

2

comme ceci:

list($salt, $username, $hash) = explode(':', $data); 

Vous pouvez également laisser tomber le sinon nécessaire $salt et $hash et simplifier à ceci:

list(,$username) = explode(':', $data); 
+0

Un SHA1 peut-il également inclure un colon? Alors ça gâcherait tout ça. –

+0

Les SHA1 ne contiennent que des lettres et des chiffres, et peu importe s'ils contiennent des deux-points car ils viennent après le nom d'utilisateur. D'un autre côté, si $ salt contient un deux-points, alors vous n'avez pas de chance. –

+0

Il devra s'échapper du côlon en concaténant et en tenir compte dans l'expression régulière ou exploser. – cherouvim

0

SHA1 génère digests de message de taille fixe de 160 bits. En utilisant cette information, vous pouvez enlever le hash de la fin et ensuite trouver le nom d'utilisateur assez facilement (en supposant qu'il ne contient pas de deux-points).

Questions connexes