<?php
function gencard($login='CyberSDF',$salt18 'voilamongraindesel') {
  
 
$temp md5($login.$salt18);
 
$alphabet 'ABCDE';

 for(
$i=1$i<=5$i++) {
  for(
$j=0$j<5$j++) { 
   
$foo[$i][$alphabet[$j]] = dechex( (ord($temp[$i])*ord($temp[$j])) );
  }
 }
 return 
$foo;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Authentification forte</title>
</head>
<body>

<p>Voici la carte que vous possedez <strong>sur vous</strong>.<br />
Elle a été générée en fonction de votre login (CyberSDF pour cet exemple), donc elle est unique, ainsi que d'un <em>grain de sel<em> connu uniquement du programme</p>

<?php $bar gencard(); ?>
<table border="1" cellpadding="5">
 <tr>
  <th>&nbsp;</th>
  <?php
  $alpha 
'ABCDE';
  for(
$j=0$j<strlen($alpha); $j++) {
  echo 
"  <th>".$alpha[$j]."</th>\r\n";
  }
  
?>
 </tr>
  <?php
    
for($i=1$i<=5$i++) {
       echo 
" <tr>\r\n  <th>".$i."</th>\r\n";
       for(
$j=1$j<=strlen($alpha); $j++) {
          echo 
"  <td>".$bar[$i][$alpha[$j-1]]."</td>\r\n";
       }
       echo 
"</tr>\r\n";
     }
 
?>
</table>
<?php
if($_REQUEST['val']!='') {
 
$plop gencard();
 if(
$plop[substr($_REQUEST['case'],1,2)][substr($_REQUEST['case'],0,1)] == $_REQUEST['val'])
  echo 
"<hr /><p style='color:green;font-size:large;'>Ok, vous avez donné la bonne valeur</p>";
 else
  echo 
"<hr /><p style='color:red;font-size:large;'>Tu t'es planté, recommence</p>";
}

?>
<hr/>
<p>Donnez la valeur de la case <strong>
<?php
$ltr 
'ABCDE';
echo 
$case $ltr[mt_rand(0,4)].mt_rand(1,5);
?>
</strong></p>
<form method="post" id="monform" name="monform" action="<?php echo $_SERVER['PHP_SELF'?>">
 <input type="text" id="val" name="val" /> 
 <input type="hidden" id="case" name="case" value="<?php echo $case ?>" />
 <input type="submit" />
</form>


<p style="text-align:right"><em><a href="<?php echo $_SERVER['PHP_SELF']?>s">Voir le source PHP de cette page</a></em></p>
</body>
</html>