3v4l.org

run code in 300+ PHP versions simultaneously
<?php function unWebSafeAndPad($oriString) { $pad = ""; if (strlen($oriString) % 4 == 2) { $pad = "=="; } else if (strlen($oriString) % 4 == 3) { $pad = "="; } $aftString=str_replace('-','+',$oriString); $aftString=str_replace('_','/',$aftString); $aftString .=$pad; return $aftString; } $win_price_org="WS9LmQAOGIAKhxmVAAoLX-7A2eImDaKldk0BHQ"; // (*) $encodePrice=urldecode($win_price_org); $safePrice=unWebSafeAndPad($encodePrice); $decodePrice= base64_decode($safePrice); $eKey='2d0aIoOnAp8ZSTXEuqPJEm2GgE4Qp2KHcvxAjRhelSU='; // (*) $eKey=base64_decode($eKey); $iKey='uoVj+Ii4LUInow4xos46phIE2yq3J4otQzcYTfMcmk4='; // (*) $iKey=base64_decode($iKey); $iv=substr($decodePrice,0,16); $p=substr($decodePrice,16,8); $sig=substr($decodePrice,24,4); $pricePad = hash_hmac('sha1',$iv,$eKey,true); $price = $p ^ $pricePad; $priceRaw=unpack('c*',($price)); echo $price;

preferences:
66.86 ms | 402 KiB | 5 Q