1/ Je crois que pour les cookies que tu as raison

2/ C'est pas vraiment trivial disons

3/ md5, ca passe partout et c'est ESSENTIEL! Au lieu de stocker le passwd en clair, tu stockes le hash, comme ca t'es surt que si qqun pirate ta base de donnees, il ne peut pas utiliser les passwd qu'il trouve!
Ca n'a rien a voir avec encodage decodage puisque c'est justement fait pour pas etre decodable... regarde un peu sur le net. Un espace membre digne de confiance utilise md5... ceux qui gardent les mots de passe en clair... ben je m'en mefie

4/ pour le challenge: je recommence....
Sur le site A, quand Bob se loggue sur l'url
www.A.com/login.php, le script login.php genere en meme temps un challenge, un nombre aleatoire par exemple de 8 chiffres... 84629640 voila, on dira que c'est ca

Il le stocke en memoire, ou il veut, on s'en fout c'est son probleme. quoi qu'il en soit il faut que ce chiffre soit lie a Bob.
Ensuite il se balade sur le site A et voit un lien pour aller sur le site B. Le lien doit etre intelligemment construit:
[ Lien ] par exple. A savoir qu'ici, '
ndue830olsp352y490jrn8hap01nvo9 ' est le resultat de md5(md5($passwd).$challenge)), avec $challenge = 84629640 et $passwd = le passwd de Bob.
Arrive sur ton site, toi tu recuperes l'URL. 2 possibilites: 1/ tu as la meme base de donnees pour les membres que ton pote (tu peux pas ouvrir une base de donnees d'un autre) OU ton pote conserves les donnees login/passwd dans un fichier texte accessible (attention a la structure, il faut dans ce cas qu'il conserve la hash des passwd)
Toi tu recuperes l'url entrante ($_SERVER blabla), tu prends le challenge, tu le concatenes aux (hash du) password dans la bd ou le fichier texte a distance, tu hash et tu compares a
ndue830olsp352y490jrn8hap01nvo9 que tu as recu dans l'url. Si ca coincide, tu ouvres la sessions.
Voila. la je t'ai tout dis en details! Si tu comprends pas... ben fouill eun peu le net car visiblement il te manque qqs bases (comme l'utilisation de md5)
Enjoy, ++ 