FONCTION DE "CRYPTAGE" D'ADRESSE MAIL

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 7 janv. 2005 à 07:16
punkcity Messages postés 28 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 11 avril 2008 - 27 avril 2006 à 17:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28656-fonction-de-cryptage-d-adresse-mail

punkcity Messages postés 28 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 11 avril 2008
27 avril 2006 à 17:42
Bonjour à tous.
Petite asutce pour celles et ceux qui utilisent mysql (peut etre adapter à un fichier texte).

Dans où doit figurer l'adresse email afficher ça ($id étant ici le numero unique de la personne qui est propriétaire de l'adresse email) :
<?php echo""; ?>


On fait appel au fichier image_courriel.php qui recupere la valeur $_GET de id :

<?php
header("Content-type: image/png");
require_once('Connections/votrebase.php');

if ( (isset($_GET["id"])) && ($_GET["id"]!= "") ) {
$id=$_GET["id"];
mysql_select_db($database_votrebase, $votrebase);
$query_rsUtilisateur "SELECT id, log, email FROM utilisateurs WHERE id '$id'";
$rsUtilisateur = mysql_query($query_rsUtilisateur, $votrebase) or die(mysql_error());
$row_rsUtilisateur = mysql_fetch_assoc($rsUtilisateur);
$totalRows_rsUtilisateur = mysql_num_rows($rsUtilisateur);
// Création de l'image
$im = imagecreate(210, 16) or die ("Impossible d'initialiser la bibliothèque GD");

// Création de quelques couleurs
$background_color = imagecolorallocate ($im, 255, 239, 189);
$text_color = imagecolorallocate ($im, 0, 0, 0);

// Le texte à dessiner
$text=$row_rsUtilisateur["email"];

// Ajout du texte
imagestring ($im, 2, 5, 0, $text, $text_color);
// Utiliser imagepng() donnera un texte plus claire,
// comparé à l'utilisation de la fonction imagejpeg()
imagepng($im);
imagedestroy($im);
}
?>


ensuite on fait appel au fichier texte_courriel.php, qui permet de cliquer sur le mailto et de rediriger sur une nouvelle page :

<?php
require_once('Connections/votrebase.php');
if ( (isset($_GET['id'])) && ($_GET['id']!='') ) {
$id=$_GET['id'];
mysql_select_db($database_Punkcity, $Punkcity);
$query_rsUtilisateur "SELECT id, email, log FROM utilisateurs WHERE id '$id'";
$rsUtilisateur = mysql_query($query_rsUtilisateur, $votrebase) or die(mysql_error());
$row_rsUtilisateur = mysql_fetch_assoc($rsUtilisateur);
$totalRows_rsUtilisateur = mysql_num_rows($rsUtilisateur);
$text=$row_rsUtilisateur['email'];
header("Location: mailto:$text");
echo "<html><head><META HTTP-EQUIV='Refresh' CONTENT='0;URL=page_a_rediriger.php?id={$row_rsUtilisateur['log']}'></head> </html>";
}
?>

et voila le tour est joué pas moyen de chopper l'email.

Pour tester si vos anti-spam fonctionne utilisé la moissoneuse à spam sur cette adresse http://aspirine.org/cgi-bin/trouvemail.pl'url =&mode=malin
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 janv. 2005 à 21:11
oui ça reste infaisable, et même avec mon super HD à 4TO seconde, on n'aurais jamais la carte mère qui va avec...
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
13 janv. 2005 à 21:09
on s'comprend...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 janv. 2005 à 21:07
les ghtz n'ont rien avoir la dedans(enfin si, mais...), ici, c'est ton HD qui va craquer... t'auras besoin d'un SATA à quelques milliards de tours secondes... et que quelques TO
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
13 janv. 2005 à 20:58
iomega, faudra que tu m'expliques comment tu arrives à faire des collisions sur md5!!!! Parce que si ta méthode fonctionne, je veux devenir ton impressario et on va gagner beaucoup d'argent!

Plus sérieusement, md5 est une fonction de hashage et la propriété de ces fonctions est qu'il est quasi impossible de trouver deux valeurs x et y telles que h(x) = h(y), de plus, il est quasi impossible de trouver un x à partir d'un h(x). Ce que tu dis faire s'appelle dans le jargon une "first preimage attack". Sachant que md5 fait 128 bits, il y a 2^128 possibilités de hashage, alors avec ton dico.txt, à moins qu'il fasse 1000 giga et que tu tourne à plusieurs dixaines de milliers de gigaherz, je crois pas que tu puisses retrouver le pwd ;o)
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
10 janv. 2005 à 15:14
Euh... bin la, sur ton serveur tu peux bien garder ton email normal... ya personne qui va te la voler si tu ne l'affiches pas...
De plus, md5 fait 32 caractères (t'as écrit n'importe quoi lol:P)
Et ca ne se décrypte pas... même si tu "utilises" des dictionnaire...
Donc c'est pas la meilleure des solutions comme tu dis :P
cs_iomega Messages postés 144 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 1 septembre 2008
10 janv. 2005 à 10:27
Hello à tous voici comment moi je fais je ne sais pas si c'est la meilleure des solutions
je crypte mon mon adresse mail en md5 ce qui donnera
un truc du genre "74e0d3b950839c41" je l'envoie vers ma page envoi_mail.php et la je décrypte cette chaine et j'utiliste la fonction mail à ce moment

je m'explique pour décrypter j'utiliste un dico.txt et je mets mes adresses email décryptée.

et voila!!
A+
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
10 janv. 2005 à 05:32
Un robot sniffer peut très bien aller scanner les autres pages des liens présents dans ta page... Donc ton code aura le même problème...

Le best ? pas d'email... :P ou une place pour envoyer des emails sur ton site (avec un formulaire et la fonction mail)

Ou sinon, on part une company pour retracer les spammers... mais la, faudrait que tous les gouvernements payent...
hebster Messages postés 8 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 15 janvier 2007
10 janv. 2005 à 03:27
Ps: JE reposte ici le meem code que j'ai commenté c plus mieux pour les debutants meme si ma phrase n'est pas trop francais :p
(ps : les frases entres /* et */ sont des commentaires)
<?php
if (ereg('^([a-z0-9_\.-]{1,35})$', $_GET['user']) && ereg('^([a-z0-9\.-]{2,})\.([a-z]{2,3})$', $_GET['host'])) {
/*ici on utilise la condition if combinée aus ereg pour avoir la certitude que la valeur entrée pour les user et host n'ont pas des caracteres autres que des lettres, chiffres ou point ou tiret */
echo "<html>\n"; /* on met les en tete Html*/
echo "<script language='javascript'>\n";
echo "window.location = 'mailto:".$_GET['user']."@".$_GET['host']."?subject=".$_GET['subject']."';\n";
/* ici c le code Js pour recharger la page et vu qu'on a un mailto il enverra un mail [ on peux aussi faire un header("location: mailto ..."); ] */
echo "history.go(-1);\n"; /*ici on retourne a la page précédente sachant que le code au dessus aura ouvert la fenetre d'en voi de mail du client mail par defaut*/

echo "</script>\n";
echo "</html>\n"; /* on ferme les balises*/
}
exit(); /* on arrete le code au cas ou la page mettrait du temps a recharger la page précédente*/
?>

Voila un code commenté :p
hebster Messages postés 8 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 15 janvier 2007
10 janv. 2005 à 03:20
personnellement j'utilise une technique a peu pres similaire que coucou747 mais sans la fct mail. Je m'explique mon lien pour mailer la personne est Parti de la le robot de spam ne scannera pas ce lien car c un lien vers une page ensuite on cree sur le serveur une page qu'on appelle pasdespam.php et on met ce contenu:


<?php
if (ereg('^([a-z0-9_\.-]{1,35})$', $_GET['user']) && ereg('^([a-z0-9\.-]{2,})\.([a-z]{2,3})$', $_GET['host'])) {
echo "<html>\n";
echo "<script language='javascript'>\n";
echo "window.location = 'mailto:".$_GET['user']."@".$_GET['host']."?subject=".$_GET['subject']."';\n";
echo "history.go(-1);\n";
echo "</script>\n";
echo "</html>\n";
}
exit();
?>

voila. Personellement je n'ai pas encore été spammé sur les addresse avec lesquelles g utilisé ce code mais peut etre est-ce un coup de chance car je ne croie pas au code infaillible :p


Bonne année et qu'elle vous soie bonne a coder :p
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
9 janv. 2005 à 04:56
ahhh un mail par le serveur... tu parlais de header("Location:mailto..."); Ca ils peuvent le voir mais c'est sur que la fonction mail, elle est dur à voir pour un tit sniffer :p Il peut peut-etre déceler que c'est un form d'envoie de mail fac il va enregistrer l'adresse dans ses favoris (oui oui) et apres il va savoir qu'il faut qu'il sélectionne le textarea entre l'email et clic sur le bouton Envoyer !
C'est rendu vraiment VRAIMENT brillant les spammers hein :P
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 janv. 2005 à 21:34
justement avec plusieurs fichiers, on enverait le mail a travers un formulaire... et le mail ne serait pas passé en arg... le login de l'utilisateur le serait, et ensuite une page php lirait dans la BDD pour trouver le mail... conclusion, on ne verrait pas du tout le mail...

ex :
/*dans la page ou le lien doit être présent*/
mailer coucou747

/*mail.php*/
$user=$_GET['user'];
echo "<form method='post' action='mail.php?mail=$user'>


<textarea name='texte'>
</textarea>

</form>
";
$logins=array("coucou747");
$mails=array("coucou747@hotmail.com");
if ($_POST['texte']){
$sujet=$_POST['sujet'];
$i=0;
foreach ($logins as $a){
if ($user==$a){
$mail=$mails[$i];
}
$i++;
}
mail($mail, $texte, $sujet); //je ne connais pas les args pour cette fonction...
}


Pour les spams, c'est pas ce que j'appelle un désagrément... du moins pour le moment...
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
8 janv. 2005 à 17:11
Trop tard coucou747 ! Tu vas te faire spammer ! t'as laissé ton email :P

Mais ton histoire de plusieurs fichiers, si jamais le beau robots suit les liens, il pourrait très bien le récupérer aussi :)

Le mieux reste encore l'image !
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 janv. 2005 à 12:45
Pour les images, c'est le principe des antis flood de hotmail et linuxfr par exemple... C'est efficace : on écrit de travers avec une couleur qui change tout le temps et on doit brouiller l'image le plus possible...

Et sur l'image t'es pas obligé d'écrire le mail mais tu peux mettre :
"mail de coucou747"
au lieu de mettre
"coucou747@hotmail.com"

Donc, le système des doubles pages, c'est faisable... surtout si la page php envoi le mail, donc, on n'aurai à aucun endroit l'e-mail de l'utilisateur d'écrit sur le site... On ne pourait les lire que dans les sources php...
Jayadeva Messages postés 67 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 1 septembre 2008
8 janv. 2005 à 12:39
Surtout ne pas mettre l'email dans l'image... certains robots son capable de les lires .... (salaud)
sinon, le coup du mail via un autre fichier, c'est énorme ;)
Mais qui veut être sur ne recule devant rien ...
Pour ma part, je m'en fout :p
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 janv. 2005 à 23:42
En JS les robots les verraient aussi....
L'idéal c'est de créer des images de nom aléatoires...
et appeller une page php pour envoyer un mail...
C'est assez simple :
tu génère une chaine aléatoire
tu génère une impage avec le mail
tu donne a cette iamge la chaine comme nom
tu met :

tu enregistre dans une BDD $chaine et tu lui associe $mail

dans mail.php
tu relis la bdd jusqu'a ce que tu retrouves $chaine, puis tu associe $mail pour faire une header("location:mailto:$mail");

Voila en gros comment on peut faire un super truc...
cs_iomega Messages postés 144 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 1 septembre 2008
7 janv. 2005 à 14:28
Hello mais j'ai rien compris ce cas écrit Jayadevaš
quelqu'un peut-il m'éclaircir
merci
A+
Jayadeva Messages postés 67 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 1 septembre 2008
7 janv. 2005 à 13:03
[bla@cli.com ] <- ca ca sux
[bla (chez) blie (pt) com Mail] <- ca ca rox

simplement...
apxa Messages postés 188 Date d'inscription mercredi 15 mai 2002 Statut Membre Dernière intervention 25 avril 2009
7 janv. 2005 à 12:36
iop all,
le plus simple serais encore de generer a la volée une image de l'email avec les lib gd.
ou d'utiliser une image juste pour le @
koi k'il en soit je ne vois po l'interret de crypt l'email si après l'internaute ne pige rien a l'email.

have fun.
Jayadeva Messages postés 67 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 1 septembre 2008
7 janv. 2005 à 12:19
Pourquoi ne pas utiliser le javascript, tout simplement?
PLus longt mais la sytaxe plus cryptée et peut-être de façons infinié...
Ceul problème, c'a n'est pas compatible w3 (j'ai eu des soucis).
cs_iomega Messages postés 144 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 1 septembre 2008
7 janv. 2005 à 11:43
Hello je voudrais savoir comment y récuper au format juste ? et non crypter
merci a+
leviathan516 Messages postés 4 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 20 juillet 2009
7 janv. 2005 à 11:15
Pour la premiere remarque concerne le "nom at adresse dot com" je suis d'accord que c'est plus comprehensible par tous, mais les robots de spam ne sont pas betes et de plus en plus de site l'utilise donc ce genre de "cryptage" ne servira pas encore longtemps je pense car les algorythme seront changer pour permettre de les recuperer. Donc je suis plutot contre.
Pour la seconde remarque, ton idée de mettre des caracteres spéciaux (aléatoire) apres ou avant le "at" est très bonne mais je me demande si ca ne renvient pas au meme au niveau de la comprehension que ma fonction?
car est il forcement plus facile de comprendre: "nom at#$ adresse dot com" que "nom eF_ adresse.com".
J'aimerais avoir d'autre avis pour voir si je peux faire evoluer ma fonction.
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
7 janv. 2005 à 07:16
Sérieusement moi si je vois "nom eF_ adresse.com" je vais pas capter que c'est un E-Mail...
Faudrait plutot mêttre "nom at adresse dot com" et si tu veux vraiment plus "crypter" cette adresse, tu rajoutes en avant ou apres le at par exemple des caractères spéciaux mais pas de lettre...