Diskuze: PHP hmac Autentizační token
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
jak to již bývá, když to sepíšu, vždy mě ještě něco napadne
jistě to tak taky máte
takže když jsem si postěžoval jak to nejde, našel jsem funkci, která
vrací to co očekávám
má vyjít : digest = X+pyDNT9t+Q2Ctismyoec9OE4ig=
echo "custom_hmac: ".base64_encode(custom_hmac("sha1", "1+POST+/rest/api/v1/order/1122334455/delivery+2017-01-23T19:33:43.511", "s3Cr37!", $raw_output = true));
a vyjde X+pyDNT9t+Q2Ctismyoec9OE4ig=
třeba to někomu pomůže
function custom_hmac($algo, $data, $key, $raw_output = false)
{
$algo = strtolower($algo);
$pack = 'H'.strlen($algo('test'));
$size = 64;
$opad = str_repeat(chr(0x5C), $size);
$ipad = str_repeat(chr(0x36), $size);
if (strlen($key) > $size) {
$key = str_pad(pack($pack, $algo($key)), $size, chr(0x00));
} else {
$key = str_pad($key, $size, chr(0x00));
}
for ($i = 0; $i < strlen($key) - 1; $i++) {
$opad[$i] = $opad[$i] ^ $key[$i];
$ipad[$i] = $ipad[$i] ^ $key[$i];
}
$output = $algo($opad.pack($pack, $algo($ipad.$data)));
return ($raw_output) ? pack($pack, $output) : $output;
}
Zobrazeno 2 zpráv z 2.