- crypt: documentation ( source)
- hash_hmac: documentation ( source)
<?php
function mac($msg)
{
$key = "7h3_1337_k3y";
$nonce = "5uc3m01";
$bloc_size = 64;
if(strlen($msg)==$bloc_size)
{
print("cas2");
$mac = $msg;
}
else if(strlen($msg)>$bloc_size)
{
print("cas3");
$mac = hash_hmac("sha512",$msg.$nonce,$key,true);
}
return crypt($mac,'$6$rounds=5000$OhMyG05h!');
}
$lemessage="UNMESSAGEASSEZGRANDPOURTOMBERDANSLECASDUCALCULDEHASHMAPETPOUVOIRREJOURSONMACPOURTOMBERDANSLECASCRYPTODIRECT";
$mac = mac($lemessage);
$valuemac=hash_hmac("sha512",$lemessage."5uc3m01","7h3_1337_k3y",true);
$mac2=eval("return hex2bin($valuemac);");
$b=mac($mac2);
if($mac==$b)
{
print("OK");
}
else{
print("KO");
}
print($mac);
print($b);