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;
Output for git.master, git.master_jit, rfc.property-hooks
�

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
52.48 ms | 401 KiB | 8 Q