begin process at 2012 05 27 20:18:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

E-Mail / Messagerie

 > FONCTION DE "CRYPTAGE" D'ADRESSE MAIL

FONCTION DE "CRYPTAGE" D'ADRESSE MAIL


 Information sur la source

Note :
Aucune note
Catégorie :E-Mail / Messagerie Niveau :Débutant Date de création :06/01/2005 Date de mise à jour :06/01/2005 20:35:09 Vu :6 114

Auteur : leviathan516

Ecrire un message privé
Site perso
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

 Description

Ce code sert a générer 3 caractères aléatoires afin d'obtenir une adresse du style: nom "ed adresse.com
Cela permet de mettre les adresses e-mail de membres de forums, par exemple, en clair sur internet sans avoir peur qu'elles soient recuperées par des robots de spams

Source

  • function crypt_mail($mail)
  • {
  • //generation de trois caractere aleatoire remplaçant le @
  • $chaine = crypt(md5(rand(0,1000000)));
  • $longueur = strlen($chaine);
  • $nb_alea = rand(0,$longueur);
  • if ($nb_alea > 3)
  • {
  • $remplacement = " ".substr($chaine,$nb_alea-3,3)." ";
  • }
  • else
  • {
  • $remplacement = " ".substr($chaine,$nb_alea,3)." ";
  • }
  • //remplacement du @ par les trois caracteres aleatoires
  • $mail_crypt = str_replace("@",$remplacement,$mail);
  • return $mail_crypt;
  • }
function crypt_mail($mail)
{
 //generation de trois caractere aleatoire remplaçant le @
 $chaine = crypt(md5(rand(0,1000000)));
 $longueur = strlen($chaine);
 $nb_alea = rand(0,$longueur);
 if ($nb_alea > 3)
 {
  $remplacement = " ".substr($chaine,$nb_alea-3,3)." ";
 }
 else
 {
  $remplacement = " ".substr($chaine,$nb_alea,3)." ";
 }
  //remplacement du @ par les trois caracteres aleatoires
 $mail_crypt = str_replace("@",$remplacement,$mail);
 return $mail_crypt;
}

 Conclusion

on utilise la fonction comme ceci: <?php echo crypt_mail("nom@adresse.com"); ?>
et cela renvoie un resultat comme nom eF_ adresse.com


 Historique

06 janvier 2005 20:35:09 :

 Sources du même auteur

Source avec Zip CAPTCHA (ANTI-SPAM)

 Sources de la même categorie

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip CHAT EN PHP ET JQUERY par pitchoubrazil
Source avec Zip Source avec une capture FORMULAIRE DE CHOIX MULTI-CONTACT VALIDE XHTML 1.0 TRANSITIO... par aventurier19
Source avec Zip Source avec une capture WEB MESSENGER par EvildarkEurope

Commentaires et avis

Commentaire de GRenard le 07/01/2005 07:16:49

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...

Commentaire de leviathan516 le 07/01/2005 11:15:12

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.

Commentaire de iomega le 07/01/2005 11:43:53

Hello je voudrais savoir comment y récuper au format juste ? et non crypter
merci a+

Commentaire de Jayadeva le 07/01/2005 12:19:26

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).

Commentaire de apxa le 07/01/2005 12:36: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.

Commentaire de Jayadeva le 07/01/2005 13:03:26

<a href="bla@cli.com"><img></a> <- ca ca sux
<a href="bla (chez) blie (pt) com">Mail</a> <- ca ca rox

simplement...

Commentaire de iomega le 07/01/2005 14:28:59

Hello mais j'ai rien compris ce cas écrit Jayadeva¨
quelqu'un peut-il m'éclaircir
merci
A+

Commentaire de coucou747 le 07/01/2005 23:42:37 administrateur CS

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 :
<a href='mail.php?mail=$chaine'><img src='$chaine.jpg'></a>
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...

Commentaire de Jayadeva le 08/01/2005 12:39:00

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

Commentaire de coucou747 le 08/01/2005 12:45:03 administrateur CS

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...

Commentaire de GRenard le 08/01/2005 17:11:20

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 !

Commentaire de coucou747 le 08/01/2005 21:34:27 administrateur CS

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*/
<a href='mail.php?user=coucou747'>mailer coucou747</a>

/*mail.php*/
$user=$_GET['user'];
echo "<form method='post' action='mail.php?mail=$user'>
<input type='text' name='sujet' value='sujet'><br>
<textarea name='texte'>
</textarea>
<input type='submit' value='send'>
</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...

Commentaire de GRenard le 09/01/2005 04:56:04

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

Commentaire de hebster le 10/01/2005 03:20:43

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 <a href="pasdespam.php?user=Pouette&host=Hotmail.com"> 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><body>\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></body>\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

Commentaire de hebster le 10/01/2005 03:27:08

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><body>\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></body>\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

Commentaire de GRenard le 10/01/2005 05:32:56

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...

Commentaire de iomega le 10/01/2005 10:27:57

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+

Commentaire de GRenard le 10/01/2005 15:14:58

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

Commentaire de malik7934 le 13/01/2005 20:58:06

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)

Commentaire de coucou747 le 13/01/2005 21:07:06 administrateur CS

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

Commentaire de malik7934 le 13/01/2005 21:09:58

on s'comprend...

Commentaire de coucou747 le 13/01/2005 21:11:49 administrateur CS

oui ça reste infaisable, et même avec mon super HD à 4TO seconde, on n'aurais jamais la carte mère qui va avec...

Commentaire de punkcity le 27/04/2006 17:42:46

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"<a href='texte_courriel.php?id=$id' target='_self'><img border='0' align='absmiddle' src='image_courriel.php?id=$id'></a>"; ?>


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><BODY></body></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

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales