Vendredi 26 Février 2010
Mémento
Juste pour pouvoir retrouver, en cas de besoin.
A tester ici : http://riseofgeeks.lescigales.org/crypt_project/func2.php
Le seul problème, c'est que certains caratères peuvent s'afficher bizarrement, notamment sur FireFox. J'ai aussi reproduit cet algorithme sur Ti, j'l'upperai si ça intéresse x)
Dans la foulée, si quelqu'un peut m'expliquer comment obtenir le même rendu de la balise [source] sur un blog, comme sur yN, ça m'aiderait :')
Exemple ici : Tadada
A tester ici : http://riseofgeeks.lescigales.org/crypt_project/func2.php
Le seul problème, c'est que certains caratères peuvent s'afficher bizarrement, notamment sur FireFox. J'ai aussi reproduit cet algorithme sur Ti, j'l'upperai si ça intéresse x)
Dans la foulée, si quelqu'un peut m'expliquer comment obtenir le même rendu de la balise [source] sur un blog, comme sur yN, ça m'aiderait :')
Exemple ici : Tadada
<?php
if(isset($_GET['sphp']))
{
show_source(__FILE__);
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Cryptage Vernam :: Mise en fonctionnement</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
#site
{
margin-left: -175px;
position: absolute;
top: -175px;
left: 50%;
width: 250px;
height: 250px;
visibility: visible;
}
input {
border: 1px solid black;
padding:3px;
margin:3px;
background-color: #E7EBF7;
font-family: Verdana;
font-size: 0.8em;
}
body, html {
font-family: arial;
font-size: 0.9em;
background-color: #E7EBF7;
}
</style>
</head>
<body>
<div id="site">
<?php
//Cryptage Vernam
#Le cryptage Vernam utilise une clef secrete.
#La clef est repetee pour que sa longueur finale soit egale
#à la longueur de la chaine a crypter.
#A chaque caractere correspond un chiffre.
#On fait la somme verticale des chiffres correspondant aux caracteres.
#On obtient une suite de chiffres. Cette somme peut comporter plusieurs
#occurences qui ne veulent pas dire qu'il s'agit des memes caracteres !
function Cryptage($MDP, $Clef){
$LClef = strlen($Clef);
$LMDP = strlen($MDP);
if ($LClef < $LMDP){
$Clef = str_pad($Clef, $LMDP, $Clef, STR_PAD_RIGHT);
}
elseif ($LClef > $LMDP){
$diff = $LClef - $LMDP;
$_Clef = substr($Clef, 0, -$diff);
}
$MDP_Crypt = SommeBin($MDP, $Clef);
$Texte_Crypt = BinVersTexte($MDP_Crypt);
return $Texte_Crypt;
}
function SommeBin($MDP, $Clef){
$bin = "";
$LMDP = strlen($MDP);
for ($i=0; $i<$LMDP; $i++) {
$MDP_B = decbin(ord($MDP{$i}));
$Clef_B = decbin(ord($Clef{$i}));
$bin_final = $MDP_B + $Clef_B;
$bin_final = preg_replace('#2#', '0', $bin_final);
if(strlen($bin_final) < 8){
$bin_final = str_pad($bin_final, 8, 0, STR_PAD_LEFT);
}
$bin .= $bin_final;
}
return $bin;
}
function BinVersTexte($binaire){
$texte="";
$n=0;
$Lbinaire = strlen($binaire);
while ($n < $Lbinaire){
$binaire_temp = "";
for($i=0; $i<8; $i++){
$binaire_temp .= $binaire{$n+$i};
}
$lettre = chr(bindec($binaire_temp));
$texte .= $lettre;
$n = $n+8;
}
return $texte;
}
$Crypt = Cryptage($_POST['mdp'], $_POST['key']);
$Decrypt = Cryptage($Crypt, $_POST['key']);
echo "<center>:: <b>Cryptage effectue</b> ::<br />".$Crypt."<br />::
<b>Hash decrypte</b> ::<br />".$Decrypt;
?>
<form method="POST">
Chaine a crypter : <input type="text" name="mdp" /><br />
Clef de cryptage : <input type="text" name="key" /><br />
<input type="submit" value="Crypter" />
</form><br />
<a href="?sphp">Afficher la source</a></center>
</div>
</body>
</html>
<?
}
//Remarque ::
// Ce code source est particulierement degueulasse et non conforme
// xHTML, grosse flemme !
?> Retour au blog
Aucun commentaire pour le moment ...