<?php
/**
* @file obfuscater_password.php
* @brief Page qui permet d'obfuscater un password dans une page PHP
*
* @author hughes monget
* @see http://monget.com/
*/
define('PARAM_HTTP_PASSWORD', 'p');
define('PARAM_HTTP_ACTION', 'a');
$str_password = '';
$bool_action = isset($_REQUEST[PARAM_HTTP_ACTION]) && isset($_REQUEST[PARAM_HTTP_PASSWORD]) && is_string($_REQUEST[PARAM_HTTP_PASSWORD]);
if ($bool_action)
{
$str_password = $_REQUEST[PARAM_HTTP_PASSWORD];
if (get_magic_quotes_gpc())
{
$str_password = stripslashes($str_password);
}
$str_aleas = array_merge(range('0', '9'), range('a', 'z'), range('A', 'Z'));
shuffle($str_aleas);
$str_aleas = implode('', $str_aleas);
$str_padding = substr($str_aleas, 0, strlen($str_password));
$str_encode = base64_encode($str_password ^ $str_padding);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Obfuscater un password</title>
<style type="text/css">
<!--
body *
{
font-family: monospace;
font-size: 8pt;
}
input.submit
{
width: 100px;
display: block;
}
input.eval
{
width: 600px;
}
-->
</style>
<script type="text/javascript">
<!--;
function on_load()
{
if (document && document.getElementById)
{
var obj_pattern = document.getElementById('<?php echo PARAM_HTTP_PASSWORD ?>');
if (obj_pattern && obj_pattern.focus)
{
obj_pattern.focus();
}
}
}
//-->
</script>
</head>
<body onload="on_load();">
<form method="post">
<input type="text" name="<?php echo PARAM_HTTP_PASSWORD ?>" value="<?php echo htmlspecialchars($str_password) ?>" />
<input type="submit" name="<?php echo PARAM_HTTP_ACTION ?>" class="submit" value="Obfuscater" />
</form>
<?php
if ($bool_action)
{
echo '<pre>';
echo 'padding : ',htmlspecialchars($str_padding),'<br/>';
echo 'encode : ',htmlspecialchars($str_encode),'<br/>';
$str_eval = '$str_password = base64_decode(\''.$str_encode.'\') ^ \''.$str_padding.'\';';
echo 'php code: <input class="eval" type="text" readonly="readonly" value="',htmlspecialchars($str_eval),'" onclick="if (this && this.select) { this.select() ;} " /><br/>';
eval($str_eval);
echo 'eval : ',htmlspecialchars($str_password);
echo '</pre>';
}
echo '<hr />';
highlight_file(__FILE__);
?>
</body>
</html>