setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 查询用户数据 $stmt = $pdo->prepare("SELECT id, login_name, password, add_time FROM ls_jurisdiction_user WHERE login_name = ?"); $stmt->execute(['13888888888']); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user) { echo "用户数据:\n"; echo "ID: {$user['id']}\n"; echo "用户名: {$user['login_name']}\n"; echo "密码哈希: {$user['password']}\n"; echo "添加时间: {$user['add_time']}\n\n"; $CryptoModel = new \Addons\Api\Crypto(); // 注意:add_time是Unix时间戳,不需要转换 $timestamp = $user['add_time']; $timeFormat = date('YmdHis', $timestamp); echo "时间戳: {$timestamp}\n"; echo "格式化时间: {$timeFormat}\n\n"; // 解密密码 $decrypted = $CryptoModel->decrypt($user['password'], $timeFormat); echo "解密的密码: '{$decrypted}'\n\n"; // 验证解密结果 $reencrypted = $CryptoModel->encrypt($decrypted, $timeFormat); echo "重新加密: '{$reencrypted}'\n"; echo "匹配原哈希: " . ($reencrypted === $user['password'] ? '是' : '否') . "\n\n"; // 测试登录 if ($reencrypted === $user['password']) { echo "=== 测试登录API ===\n"; $url = 'https://mss.nahaichuan.com/index.php/Retail/Login/doLogin_v1'; $data = array( 'username' => $user['login_name'], 'password' => $decrypted ); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); echo "登录结果: {$result}\n"; } } else { echo "未找到用户数据\n"; } } catch (PDOException $e) { echo "数据库连接错误: " . $e->getMessage() . "\n"; } ?>