Php “如何修复”;遇到一个非数字值";警告
我已从PHP 5.x迁移到PHP 7.3,无法理解如何修复我广泛使用的此函数:Php “如何修复”;遇到一个非数字值";警告,php,Php,我已从PHP 5.x迁移到PHP 7.3,无法理解如何修复我广泛使用的此函数: function md5_decrypt($enc_text, $salt, $iv_len = 16) { $enc_text = base64_decode($enc_text); $n = strlen($enc_text); $i = $iv_len; $plain_text = ''; $iv = substr($salt ^ substr($enc_text, 0, $
function md5_decrypt($enc_text, $salt, $iv_len = 16)
{
$enc_text = base64_decode($enc_text);
$n = strlen($enc_text);
$i = $iv_len;
$plain_text = '';
$iv = substr($salt ^ substr($enc_text, 0, $iv_len), 0, 512);
while ($i < $n) {
$block = substr($enc_text, $i, 16);
$plain_text .= $block ^ pack('H*', md5($iv));
$iv = substr($block . $iv, 0, 512) ^ $salt;
$i += 16;
}
return preg_replace('/\\x13\\x00*$/', '', $plain_text);
}
我知道substr()返回的是一个字符串,必须转换成一个数值变量,但是如何在不破坏代码的情况下执行呢
欢迎提出任何建议
提前向大家表示感谢
祝你一切顺利,
Fab.各位,很抱歉,我现在意识到由于某种原因,$salt变量为null(!!),因此出现了错误!用正确的值(字符串)填充,现在一切正常。无论如何,谢谢你的帮助 你能告诉我们你调用函数的方法和参数吗?你从哪里得到这个函数的?谢谢你们的回复@是的,这确实是一个与演员有关的问题,但我不知道如何解决它,因此我在这里发布了帖子。所以很抱歉,伙计们,我现在意识到由于某种原因,$salt变量为null(!!),因此出现了错误!用正确的值(字符串)填充,现在一切正常。谢谢你的帮助!
$iv = substr($salt ^ substr($enc_text, 0, $iv_len), 0, 512);