Cryptage par décalage d'un email

Contenu du snippet

Ce code permet de montrer comment on peut facilement crypter un email par la méthode du chiffrement par décalage.
Utile pour éviter que des robots récupére votre email, il est cependant totalement inefficace contre une analyse humaine.
Le cryptage ici est assez superflux car les robots ne sont pas si intelligent ...

Ce code a plus un rôle éducatif, pour les débutant voulant se lancer en douceur dans la cryptographie.
Ce script peut être réadapté pour d'autre fonctions.

Source / Exemple :


<html>
<head>
<script>

// Cryptage (chiffrement par décalage) d'un email

// Les fonction:
// On utilise la fonction crypt() pour crypter l'email 
// Et getEmail pour le décrypter()

// Pour une utilisation classique, il suffit d'utiliser crypt en local, et récuperer la valeur
// puis la recopier en dure dans une variable dans la page cible, sinon l'email restera visible...

// Pour assurer un maximum de sécurité, on peut egalement crypter "mailto" avec l'email.

// Clé = entier quelconque <> 0 (et modulo 255 aussi) si on veut être logique :)
var key = 20;

// email à crypter
var email = "toto@toto.fr";

// Variable de sauvegarde de l'email crypté
var crypted ;

// === Fonction de cryptage permettant de retourner une tableau (Code ascii crypté) =====
// ======================================================================================

function crypt( email )
{
	if(email.length == 0) return ;

	var cryptedWord="";
	for(var i=0;i<email.length;i++)
	{

		cryptedWord=cryptedWord.concat(",",(email.charCodeAt(i)+key)%255); 
	}
	return cryptedWord.substring(1,cryptedWord.length);
}

// ===================== Fonction de décryptage de l'email ==============================
// ======================================================================================

function getEmail( cryptedEmail )
{
	var email="";
	var tab = cryptedEmail.split(",");
	for(var i=0;i<tab.length;i++)
	{
                var charVal = tab[i];
                if(charVal-key < 0 ) charVal = Math.abs(charVal)+255;
		email=email.concat(String.fromCharCode((charVal-key)%255));
	}
	return email;
	
}

// ==================== On crypte l'email et on stock le résultat dans crypted ==========
// ======================================================================================

function main()
{
	crypted = crypt(email); // On peut également faire crypt("mailto"+email);
	alert("Valeur cryptée:"+crypted);
}

// ==================== On appelle la fonction pour envoyer un email ====================
// ======================================================================================

function doEvent()
{
	document.location.href="mailto:"+getEmail(crypted); 
			
}

</script>
</head>
<body onLoad="main();">
<a href="#" id="mecrire" onClick="doEvent()">mon email</a>
</body>
</html>

Conclusion :


Pour une utilisation efficace:
- Crypter d'abord votre email en locale (chez vous) et récupérer la valeur (par exemple grâce à une alerte).
- Inscriver la valeur dans une variable dans la page: exemple ici : crypted="136,131,136,131,84,136,131,136,131,66,122,134";
( Enlever la fonction crypt() et la fonction main() de ce script (puisqu'il ne sont plus utilisé) )

Note: Vous pouver également crypter "mailto" lorsque vous crypter votre email. Les robots les détectent.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.