<?php
session_start();//会创建新会话或者重用现有会话。 如果通过 GET 或者 POST 方式,或者使用 cookie 提交了会话 ID, 则会重用现有会话。
ini_set("display_errors", 0);//不显示错误报告
include("mysql.php");
if(substr($_POST['DATA'],0,7)=='GETRAND'){//获取验证码。函数返回字符串的一部分。
$_SESSION[rand_temp]=get_rand();
exit(strtoupper(strToHex(rc4($_SESSION[rand_temp],$msgkey))));
}
$temp = str_decode($_POST['DATA'],$msgkey,$_SESSION[rand_temp]);//解密数据
$temp = explode('|+|',$temp);//拆开原始数据
if(count($temp)<5){
exit('Error');
}
$rand = $temp[0];//处理客户端效验码
//echo $rand." ".$mysql;
$User=$temp[1];
$Password=sha1(htmlentities($temp[2]));
$IPaddress=$temp[3];
$code=$temp[4];
$md5=$temp[5];
$time=date("Y-m-d H:i:s");
$token=sha1($code);
//*处理md5
$mysql="SELECT * FROM `md5list` WHERE `md5` = '$md5'";
$result=mysqli_query($con,$mysql);
$row=mysqli_fetch_array($result);
if($row['md5']!==$md5)
{
echo str_encode('7',$msgkey,$rand);//软件被篡改
mysqli_close($con);
exit;
}
//echo $User." ".$pass." ".$IPaddress." ".$time." ".$code." ".$token;
$mysql="SELECT * FROM `user` WHERE `User` = '$User'";
$result=mysqli_query($con,$mysql);
$row=mysqli_fetch_array($result);
if($result==true)
{
//exit($row['User']." ".$User);
if($row['User']==$User)
{
if($row['Password']==$Password){
if($row['code']==$code){
if($row['blacklist']=='0'){
if(strtotime($row['Time'])>time())//原始时间,取到时间戳
{
$mysql="update user set 'IPaddress'= '$IPaddress' WHERE `User` = '$User'";
mysqli_query($con,$mysql);
$time=date("Y-m-d H:i:s",time());
$mysql="SELECT * FROM `online_user` WHERE `User` = '$User'";
$result=mysqli_query($con,$mysql);
$row=mysqli_fetch_array($result);
if($row['Token']==$token)//在线用户是否存在
{
$mysql="update online_user set heartbeat_time='$time' where Token='$token'";
}else{
$mysql="insert into online_user (User,Token,code,heartbeat_time,IPaddress) VALUES ('$User', '$token', '$code', '$time','$IPaddress')";
}
if(mysqli_query($con,$mysql)==true)
{
echo str_encode($token,$msgkey,$rand);//返回token
}else{
echo str_encode('0',$msgkey,$rand);//更新在线用户失败
}
}else{
echo str_encode('2',$msgkey,$rand);//你的软件已到期请充值
}
}else{
echo str_encode('3',$msgkey,$rand);//你已经被加入黑名单,请联系作者
}
}else{
echo str_encode('4',$msgkey,$rand);//非绑定机器码
}
}else{
echo str_encode('5',$msgkey,$rand);//密码错误
}
}else{
echo str_encode('6',$msgkey,$rand);//账号尚未注册
}
mysqli_close($con);
exit;
}
?>
源码-自绘网络验证 源码网络验证
需积分: 0 75 浏览量
更新于2023-12-10
收藏 4.07MB ZIP AIGC 举报
【源码-自绘网络验证 源码网络验证】是一个关于网络验证技术的源代码项目,它结合了ExDirectUI、PHP和MySQL这三种技术,用于构建一个自定义界面的网络验证系统。这个系统的核心目标是提供一种安全、定制化的用户身份验证机制,以确保只有合法用户能够访问特定的网络资源或服务。
ExDirectUI是一种Windows平台下的用户界面开发库,它允许开发者创建具有高效性能和高度自定义的图形用户界面。在本项目中,ExDirectUI被用来自定义网络验证的前端界面,提供美观且用户友好的登录和其他交互元素。通过ExDirectUI,开发者可以实现复杂的界面效果和交互逻辑,提升用户体验。
PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发。在这个网络验证项目中,PHP起到了服务器端处理和验证用户输入的作用。开发者可能使用PHP来接收前端发送的登录信息,然后与MySQL数据库进行交互,验证用户名和密码的正确性。此外,PHP还可以实现安全性相关的功能,如防止SQL注入等。
MySQL是一个关系型数据库管理系统,是存储用户数据的理想选择。在本系统中,MySQL用于存储用户的账户信息,包括用户名、密码(通常加密存储)以及其他可能的验证数据,如用户权限、激活状态等。开发者可以通过PHP编写SQL查询语句,从数据库中检索和更新用户信息,完成验证过程。
网络验证的核心流程大致如下:
1. 用户在自定义的ExDirectUI界面上输入用户名和密码。
2. 这些信息被发送到运行在服务器上的PHP脚本。
3. PHP脚本接收到数据后,执行SQL查询,从MySQL数据库中验证用户信息。
4. 如果验证成功,服务器返回一个验证令牌或会话ID,客户端保存并用于后续请求的验证。
5. 如果验证失败,服务器将返回错误信息,客户端则显示相应的错误提示。
这个项目对于学习和理解网络验证机制,以及如何将前端、后端和数据库技术整合在一起非常有价值。开发者可以从中了解到如何设计和实现一个完整的用户认证系统,包括界面设计、服务器端验证逻辑和数据库操作。同时,这也是提升网络安全意识的好机会,因为网络验证是防止未授权访问的关键步骤。通过深入研究这个项目,开发者可以更好地掌握如何保护用户数据和系统的安全性。

小白羞羞
- 粉丝: 116
最新资源
- account-0.34.7-beta-javadoc.jar
- tock-nlp-build-model-worker-on-aws-batch-23.3.4-sources.jar
- h2o-genmodel-ext-mojo-pipeline-3.42.0.2.jar
- sparkling-water-examples_2.11-3.30.0.2-1-2.1-scaladoc.jar
- account-jvm-1.5.22-javadoc.jar
- codebuild-jvm-1.3.91.jar
- kotlinx-uuid-core-android-debug-0.0.25-sources.jar
- ihs-reader-0.6.5-javadoc.jar
- wisp-deployment-2024.09.04.181246-5fa440d.jar
- connect-0.17.9-beta-all.jar
- cloudsearchdomain-jvm-1.4.2.jar
- clouddirectory-0.15.2-beta.jar
- cloudtraildata-jvm-1.0.22-javadoc.jar
- redwood-flexbox-macosx64-0.4.0-metadata.jar
- databasemigrationservice-jvm-0.17.1-beta-sources.jar
- backupgateway-1.0.57-javadoc.jar