我想将消息加密为字符串(文本)格式,但我不知道可以将十六进制转换为字符串的函数:
这是我的页面:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
// on commence par définir la fonction Cryptage que l'on utilisera ensuite
function Cryptage($TEXT, $Clef) {
$LClef = strlen($Clef);
$LTEXT = strlen($TEXT);
if ($LClef < $LTEXT) {
$Clef = str_pad($Clef, $LTEXT, $Clef, STR_PAD_RIGHT);
} elseif ($LClef > $LTEXT) {
$diff = $LClef - $LTEXT;
$_Clef = substr($Clef, 0, -$diff);
}
return bin2hex($TEXT ^ $Clef);
}
/* On vérifie l’existence de $_POST['TEXT'] et de $_POST['Clef'].
Ça revient au même que isset($_POST['TEXT']) AND isset($_POST['Clef']) */
if (isset($_POST['TEXT'], $_POST['Clef'])) {
$resultat = Cryptage($_POST['TEXT'], $_POST['Clef']);
}
// on a fini les traitement en PHP, on passe à l'affichage :
if (isset($resultat)) {
echo "Chaîne cryptée/décryptée : " . $resultat;
}
?>
<!-- on affiche le formulaire pour que l'utilisateur puisse directement refaire un cryptage/décryptage -->
<form method="post">
<input type="text" name="TEXT" style="width:500px" value="Cliquez ici pour ajouter un texte." onFocus="javascript:this.value=''" />
<input type="text" name="Clef" style="width:500px" value="Cliquez ici pour ajouter un masque." onFocus="javascript:this.value=''" />
<input type="submit" value="Crypter/Décrypter" />
</form>
</body>
</html>
我测试了这个函数,但它没有返回任何东西(它返回一个空字符串)
function hextostr($hex)
{
$str='';
for ($i=0; $i < strlen($hex)-1; $i+=2)
{
$str .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $str;
}
你有什么想法吗,谢谢