文件
mashangyoujiu/_ai_archive/scripts/check_user_data.php

73 行
2.6 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
// 检查数据库中的用户数据
require_once './Application/Addons/Api/Crypto.class.php';
// 数据库连接配置
$host = '127.0.0.1';
$dbname = 'mss_nahaichuan_c';
$username = 'mss_nahaichuan_c';
$password = 'MyNmyAaRj9yWKPKH';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->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";
}
?>