Algorithme de césar sur la table ascii

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 981 fois - Téléchargée 17 fois

Contenu du snippet

Bonjour,

Alors voila, simple et basic, histoire d'apporté un regarde différent (Tout du moins par rapport aux codes du genre qui se compliquent la tête selon moi, dans phpcs) pour l'utilisation de l'algo de César sur la table Acsii.

Source / Exemple :


<?php 
#--------------------------------------------------------------------------------------------
#	Function cesar(string $word, int $offset, int $mode)
#
#	@$word    -> La chaine à encrypter ou decrypter;
#	@$offset  -> Le Nombre d'offset de decalage 
#       @$mode    -> 1 pour encrypter (Incrémenter), tout autre pour decripter (Decrementer)
#       return    -> La chaine $word altéré grace à la methode de césar d'apres les tables ascii
#
#   By Nementon, ---http://uwht.u7n.org---
#---------------------------------------------------------------------------------------------

function cesar($word, $offset, $mode) {
	$offset  = intval($offset);
	$mode    = intval($mode);
	$wLenght = strlen($word);
	$return  = '';
	
	if ($mode == 1 ) {
		for ($i = 0; $i < $wLenght; $i++) {
			// On recuperer le code ascii
			$tmpAscii = ord($word[$i]);
			// On ajoute à la chaine finale, la corespondance du code ascii recuperé incrementé de l'offset passé en parametre
			$return  .= chr($tmpAscii+$offset);
		}
	}
	else {
		for ($i = 0; $i < $wLenght; $i++) {
			$tmpAscii = ord($word[$i]);
			$return  .= chr($tmpAscii-$offset);
		}
	}
	return $return;
}
#--------------------------------------------------------------------------------------------
#	function cesar2(string $word, int $offset, int $mode)
#
#	@$word    -> La chaine à encrypter ou decrypter;
#	@$offset  -> Le Nombre d'offset de decalage 
#   @$mode    -> 1 pour encrypter (Incrémenter), tout autre pour decripter (Decrementer)
#   @return   -> La chaine $word altéré grace à la methode de césar d'apres les tables ascii
#
#---------------------------------------------------------------------------------------------
// Exemple de fonction césar un plus tortueuse
function cesar2($word, $offset, $mode) {
	$offset  = intval($offset);
	$mode    = intval($mode);
	$wLenght = strlen($word);
	$return  = '';
	
	if ($mode == 1 ) {
		for ($i = 0; $i < $wLenght; $i++) {
			// On recuperer le code ascii
			$tmpAscii = ord($word[$i]);
			$return  .= chr($tmpAscii+$offset+(($i*$wLenght)-$i));
		}
	}
	else {
		for ($i = 0; $i < $wLenght; $i++) {
			$tmpAscii = ord($word[$i]);
			$return  .= chr($tmpAscii-$offset-(($i*$wLenght)-$i));
		}
	}
	return $return;
}

	//Exemple :
	echo '<b>Cesar : </b><br />', cesar("abc", 666, 1), // Encrypte;
	'<br />', cesar("ûüý", 666, 2), '<br /><br />'; // Decrypte

       //Exemple  :
	$wEncrypte = cesar2("abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789", 666, 1);// Encrypte;
	echo '<b>Cesar 2 : <b/><br />', $wEncrypte, '<br />',  cesar2($wEncrypte, 666, 2); // Decrypte
?>

Conclusion :


Bon, un peu useless pour surement 97% d'entre vous, mais ce code source la m'aurait bien aidé à mes début ; )

Tous commentaires sont les bienvenus.

A voir également

Ajouter un commentaire

Commentaires

lemonwarez
Messages postés
26
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2010

Tu m'impressionnera toujours Nementon ;)

NightMare.
cs_Nementon
Messages postés
21
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
25 mai 2010

Oui, oui, c'est effectivement hors contexte de la source, m'enfin c'est moi aussi, qui suis partis en free style à la base ; )

Merci Kals1986 pour l'info, je regarderai ca, mycrypt aussi en php pourquoi pas, je les prends pour infos persos, mais pas d'énervement, il y à tellement peut à dire sur la source qu'on peut se permettre de papoter voyons ^^

(Ps : Notons bien que rien n'est spécifié sur les limites de la porté des posts de la partie "commentaires et avis" dans la charte de bonne conduite)
->(Aouch, hérésie, la sang risque de couler à flot)
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Si, tu sors du cadre : cette source présente une implémentation de l'algorithme de César. Elle ne prétend pas fournir un algorithme de chiffrement sécurisé. L'auteur a, me semble-t-il, parfaitement conscience des limitation de cet algorithme de chiffrement.
Utiliser un autre algorithme pour chiffrer n'aurait pas de sens DANS CETTE SOURCE qui n'a pas cette vocation.
Restons donc dans le cadre de ce que propose l'auteur.
Si quelqu'un cherche un algorithme pour chiffrer de manière sécurisée ses données, il utilisera plutôt la librairie mcrypt de PHP. Ici, on montre comment implémenter l'algorithme de César, point.
kals1986
Messages postés
9
Date d'inscription
samedi 6 juin 2009
Statut
Membre
Dernière intervention
28 septembre 2016
2
le cesar est facilement dechiffrable tandis que le des est beaucoup plus complique
je sors pas du cadre , je propose uniquement vu la securite et la motivation informatique
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
L'algorithme de César avec DES, ce n'est plus l'algorithme de César... C'est du DES. Faut pas tout mélanger quand même.

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.