<?php
$encAlgo = 'rijndael-256';
$encMode = 'ecb';
function encrypt_base64_urlenc($secret, $shared) {
global $encAlgo;
global $encMode;
$secret .= '\0';
return rawurlencode(
base64_encode(
trim(mcrypt_encrypt(
$encAlgo,
$shared,
$secret,
$encMode,
mcrypt_create_iv(
mcrypt_get_iv_size(
$encAlgo,
$encMode
),
2
)
), "\0")
)
);
}
function decrypt_base64($secret, $shared) {
global $encAlgo;
global $encMode;
$result =
trim(mcrypt_decrypt(
$encAlgo,
$shared,
base64_decode(strtr($secret,' ','+')),
$encMode,
mcrypt_create_iv(
mcrypt_get_iv_size(
$encAlgo,
$encMode
),
2
)
), "\0");
$terminator = strpos($result, '\0');
if ( $terminator !== -1 )
return substr($result, 0, $terminator);
return $result;
}
$test = encrypt_base64_urlenc('thisisatest','derpderp');
echo "$test\n";
$decd = decrypt_base64(rawurldecode($test),'derpderp');
echo "$decd\n";
$v = 'UQZv+VpZTlLkjPSaNnkrnDUMXH1pHKb/Jd7Aq+g9exo=';
$k = base64_decode('WOZ5NTIR9HrGM6bdehY0LMG8rmnnvplUprgSJE4cl1Y=');
echo decrypt_base64($v, $k);
preferences:
48.18 ms | 402 KiB | 5 Q