这个问题已经被问过了,但没有给出正常的答案(可能是一个愚蠢的问题,我提前为此道歉)
我只是不知道该怎么做,以便如果 $key 不适合我可以再次执行该函数,这是一个 AES / ECB / PKCS5Padding 解密脚本,如果密钥不适合,我该如何实现该脚本合适,它将开始替换 key2 例如,等等?或者我是如何被告知我需要替换一系列可能的键,但我不明白在哪里替换,请帮助(
function decrypt($key, $value)
{
if (is_numeric($value)) {
$RES = $value;
} else {
$decoded_value = urldecode($value);
//Convert Base64URL to Base64 by replacing "-" with "+" and "_" with "/"
$b64 = strtr($decoded_value, '-_', '+/');
$result = openssl_decrypt(base64_decode($b64), "AES-128-ECB", hex2bin($key), OPENSSL_PKCS1_PADDING);
$validation_regex = "/^(\d)+((\.)\d+)?\_/";
// Check that the decrypted value is valid
if (preg_match($validation_regex, $result) == 0) {
throw new Exception('Decrypted value is not valid!');
}
list($RES, $b) = explode("_", $result);
}
return $RES;
}
我冒昧地建议,在以前的评论中,建议您使用以下内容: