- var_dump: documentation ( source)
- json_decode: documentation ( source)
- base64_decode: documentation ( source)
- strtr: documentation ( source)
<?php
$packed = '{"nonce":"xobK27GhMR960tSTcg5nrFSy35uwkKYn","key":"px2BaIAx17vdBQFdnLBimERK6KHqHNxhJN0PzKfhMHE","secretbox":"RFgczAJ_L0hOpIb_O0k9dFE58Cz-dagdEA3aHxUq_Q6jCEzTdzlMQyI7jEoauWOlH7m3EEXv4OFiD-Ke3otsoLJV0TPFbV2HV59pGNsSux9e"}';
$decoded = json_decode($packed, true);
function base64url_decode(string $str): string {
return base64_decode(strtr($str, '+/', '_-'));
}
$nonce = base64url_decode($decoded['nonce']);
$key = base64url_decode($decoded['key']);
$secretbox = base64url_decode($decoded['secretbox']);
var_dump(sodium_crypto_secretbox_open($secretbox, $nonce, $key));