2023全新SF授权系统源码 V3.7全开源无加密版本

news2024/11/17 4:41:24

内容目录

  • 一、详细介绍
  • 二、效果展示
    • 1.部分代码
    • 2.效果图展示
  • 三、学习资料下载


一、详细介绍

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

以下为授权代码=
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);
}
离线授权代码
S F i d = ′ 【填写程序 I D 】 ′ ; i n c l u d e o n c e R O O T . " a u t h c o d e . p h p " ; i f ( f i l e e x i s t s ( R O O T . " a u t h c o d e . p h p " ) ) r e q u i r e ′ a u t h c o d e . p h p ′ ; e l s e e x i t ( ′ 当前网站无授权码 ! ′ ) ; i f ( e m p t y ( SFid='【填写程序ID】'; include_once ROOT."authcode.php"; if(file_exists(ROOT."authcode.php")){ require 'authcode.php'; }else{ exit('当前网站无授权码!'); } if(empty( SFid=【填写程序ID;includeonceROOT."authcode.php";if(fileexists(ROOT."authcode.php"))requireauthcode.php;elseexit(当前网站无授权码);if(empty(SF_PUBLIC_KEY))exit(‘公钥不存在!请重新到授权站下载源码’);
if(empty( S F S i g n ) ) e x i t ( ′ 签名不存在!请重新到授权站下载源 码 ′ ) ; i f ( e m p t y ( SF_Sign))exit('签名不存在!请重新到授权站下载源码'); if(empty( SFSign))exit(签名不存在!请重新到授权站下载源);if(empty(SF_Info))exit(‘信息不存在!请重新到授权站下载源码’);
function verifySign($data = ‘’, KaTeX parse error: Expected '}', got 'EOF' at end of input: …if (!is_string(sign) || !is_string( s i g n ) ) r e t u r n f a l s e ; r e t u r n ( b o o l ) o p e n s s l v e r i f y ( sign)) { return false; } return (bool)openssl_verify( sign))returnfalse;return(bool)opensslverify(data, base64_decode($sign), KaTeX parse error: Expected 'EOF', got '}' at position 38: …_ALGO_SHA256); }̲ function publi…encrypted = ‘’){
if (!is_string( e n c r y p t e d ) ) r e t u r n n u l l ; r e t u r n ( o p e n s s l p u b l i c d e c r y p t ( b a s e 6 4 d e c o d e ( encrypted)) { return null; } return (openssl_public_decrypt(base64_decode( encrypted))returnnull;return(opensslpublicdecrypt(base64decode(encrypted), $decrypted, $SF_PUBLIC_KEY)) ? $decrypted : null;
}

if(!isset(verifySign(md5(md5( S F i d ) . m d 5 ( SFid).md5( SFid).md5(_SEVER[‘HTTP_HOST’]).md5($authcode)), $SF_Sign))){
exit(‘您当前的网站未授权!请联系QQ2129876388授权
若您的网站已授权,请检查授权码是否正确!’);
}
S F A U T H I N F O = e x p l o d e ( ′ ∣ ′ , p u b l i c D e c r y p t ( SF_AUTH_INFO=explode('|',publicDecrypt( SFAUTHINFO=explode(,publicDecrypt(SF_Info));
if(KaTeX parse error: Expected '}', got 'EOF' at end of input: …00:00:00'){ if(SF_AUTH_INFO[1]!=1)exit(‘您当前的网站已封禁!请联系QQ2129876388解封后使用!’);
}else{
if( S F A U T H I N F O [ 1 ] ! = 1 ) e x i t ( ′ 您当前的网站已封禁!请联系 Q Q 2129876388 解封后使用 ! ′ ) ; i f ( SF_AUTH_INFO[1]!=1)exit('您当前的网站已封禁!请联系QQ2129876388解封后使用!'); if( SFAUTHINFO[1]!=1)exit(您当前的网站已封禁!请联系QQ2129876388解封后使用);if(SF_AUTH_INFO[0]<=date(“Y-m-d H:i:s”))exit(‘您当前的网站授权已到期!请联系QQ2129876388续费后使用!’);
}
检测更新代码
function update_version()
{
S F s t r i n g = a u t h c o d e ( SF_string=authcode( SFstring=authcode(_SERVER[‘HTTP_HOST’].‘||||’.authcode.‘||||’.VERSION.‘||||【系统ID】’,‘ENCODE’,‘【授权后台设置的密钥key】’);
S F q u e r y = f i l e g e t c o n t e n t s ( ′ h t t p : / / 【你的授权站域名】 / S F A P I / S F C h e c k . p h p ? S F s t r i n g = ′ . b a s e 6 4 e n c o d e ( SF_query=file_get_contents('http://【你的授权站域名】/SF_API/SF_Check.php?SF_string='.base64_encode( SFquery=filegetcontents(http://【你的授权站域名】/SFAPI/SFCheck.php?SFstring=.base64encode(SF_string));
S F q u e r y = a u t h c o d e ( SF_query=authcode( SFquery=authcode(SF_query,‘DECODE’,‘【授权后台设置的密钥key】’);
if ( S F q u e r y = j s o n d e c o d e ( SF_query=json_decode( SFquery=jsondecode(SF_query,true)) {
return $SF_query;
}else{
return false;
}
}

二、效果展示

1.部分代码

代码如下(示例):

<head>
  <meta charset="utf-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
  <title>自助更换授权</title>
  <link href="//lib.baomitu.com/twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
  <script src="//lib.baomitu.com/jquery/1.11.3/jquery.min.js"></script>
  <script src="//lib.baomitu.com/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
  <script src="//lib.baomitu.com/layer/2.3/layer.js"></script>
  <!--[if lt IE 9]>
    <script src="//lib.baomitu.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="//lib.baomitu.com/respond.js/1.4.2/respond.min.js"></script>
  <![endif]-->
</head>
<div class="container">
<div class="col-xs-12 col-sm-10 col-md-8 col-lg-6 center-block" style="float: none;">
<div class="panel panel-primary">
	<div class="panel-heading" style="text-align: center;"><h3 class="panel-title">
		自助更换授权
	</div>
	<div class="panel-body" style="text-align: center;">
		<div class="list-group">
			<div class="list-group-item">请填写你授权时的信息,后点击确认更换进行验证</div>
			</div>
            <div class="input-group">
              <span class="input-group-addon"><span class="glyphicon glyphicon-cloud"></span></span>
              <input type="text" name="url" value="" class="form-control" placeholder="请输入授权内容" required="required"/>
            </div>
			<br>
            <div class="input-group">
              <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
              <input type="text" name="qq" value="" class="form-control" placeholder="请输入绑定的QQ" required="required"/>
            </div>
			<br>
            <div class="input-group">
              <span class="input-group-addon"><span class="glyphicon glyphicon-cloud"></span></span>
              <input type="text" name="urls" value="" class="form-control" placeholder="请输入新授权内容" required="required"/>
            </div>
			<br>
          <!--  <div class="input-group">
              <span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>
              <input type="text" name="sqkey" value="" class="form-control" placeholder="请输入授权密匙" required="required"/>
            </div>
			<br>--> 
			<button type="submit" onclick="gh()" class="btn btn-block btn-primary">确认更换</button>
<script src="//cdn.bootcss.com/layer/3.0.1/layer.js"></script>
<script>

2.效果图展示

请添加图片描述

请添加图片描述

请添加图片描述


三、学习资料下载

蓝奏云:https://qumaw.lanzoul.com/iufe00mbwk8j

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(免费分享)springboot人事管理系统

基础环境&#xff1a;1. JDK:1.82. MySQL:5.73. Maven3.01. 核心框架&#xff1a;Spring Boot 2.2.13.RELEASE2. ORM框架&#xff1a;MyBatisPlus 3.1.23. 数据库连接池&#xff1a;Druid 1.2.84. 安全框架&#xff1a;Apache Shiro 1.8.05. 日志&#xff1a;SLF4J &#xff0c…

最近邻插值法

文章目录前言一、最近邻插值法二、代码实现总结本章节进入图像处理&#xff0c;利用python语言来实现各种图像处理的方法&#xff0c;从软件角度去理解图像处理方法&#xff0c;为后期的FPGA处理图像做准备。 前言 一、最近邻插值法 最近邻插值就是在目标像素点上插入离对应原…

界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

全网最详细的org.springframework.jdbc.UncategorizedSQLException的多种解决方法

文章目录1. 引出问题2. 分析问题3. 解决问题4. 解决该问题的其他方法4.1 方法14.2 方法24.3 方法34.4 方法4如果你遇到的问题不是我所遇到的问题&#xff0c;可以使用最下面的方法解决你遇到的这个错误。 1. 引出问题 今天在写“Mybatis-Plus中分页插件PaginationInterceptor…

利用Python读取外部数据文件

名字&#xff1a;阿玥的小东东 学习&#xff1a;python、c 主页&#xff1a;阿玥的小东东 目录 一、读取文本文件的数据 二、读取电子表格文件 三、读取统计软件生成的数据文件 不论是数据分析&#xff0c;数据可视化&#xff0c;还是数据挖掘&#xff0c;一切的一切全都是以…

java常用类: Arrays类的常用方法

java常用类型: Ineteger等包装类 String类&#xff0c;StringBuffer类和StringBuilder类 Math类及常用方法 System类及常用方法 Arrays类及常用方法 BigInteger类和BigDecimal类及常用方法 日期类Date类,Calender类和LocalDateTime类 文章目录ArraysArrays常用方法Arrays.sort(…

全排列问题的解题思路

假设有这么个正整数n&#xff0c;要求输出1到n的所有排列&#xff1f;   输入&#xff1a;3 输出&#xff1a;123&#xff0c;132&#xff0c;213&#xff0c;231&#xff0c;312&#xff0c;321 一、无脑循环求解&#xff1f; 拿到这个问题&#xff0c;当然我的第一个想法就…

上下文驱动的图上文案生成

✍&#x1f3fb; 本文作者&#xff1a;持信、弈臻、悟放、积流、孟诸1. 摘要为商品图片上特定位置配上装饰性文案来突出重点在广告业务中有着十分广泛的应用前景。然而&#xff0c;现有的图片文案描述生成系统均生成与图片位置关系无关的文案&#xff0c;无法很好地应用到广告业…

66. Python 类的总结

66. 类的总结 文章目录66. 类的总结1. 类2. 对象3. 类的语法4. 属性5. 方法6. 创建对象7. 调用属性8. 调用方法9. 方法的值的传递第1情况&#xff1a;没有值第2种情况&#xff1a;有值10. __init__方法1. __init__写法2. __init__作用3. 重点关注11. 自定义函数和方法的异同1. …

Unity渲染管线(Render Pipeline)笔记

Rendering是什么 渲染Rendering可以理解为将拿到的3D数据生成一副2D图像的过程。 这些3D数据包含&#xff1a;3D模型本身的点的信息&#xff0c;三角形面的描述信息&#xff0c;模型应用的材质以及摆放的虚拟相机的信息等。Rendering过程会使用全部的数据&#xff08;物体的几何…

摄像头录像大师推荐?如何录制摄像头,图文教程

现如今&#xff0c;很多笔记本电脑上都会携带摄像头&#xff0c;用来录制摄像头画面&#xff0c;方便小伙伴的时候。可很多小伙伴却表示&#xff0c;自己不知道电脑摄像头画面该如何录制。有什么有什么好用的摄像头录制大师&#xff1f;如何录制摄像头画面&#xff1f;本篇文章…

【10w字】超详细【百分百拿offer】的面试教程,接口测试篇

1.请问你是如何做接口测试的&#xff1f; 大体来说&#xff0c;经历以下过程&#xff1a;接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。 具体来说&#xff0c;接口测试流程分成以下九步&#xff1a; 第一步&…

RabbitMq之发布确认(高级)

一.发送消息到交换机失败 正常情况下生产者只发布消息到交换机&#xff0c;无法确定是否成功把消息发送到交换机当中&#xff0c;由此发布确认的回调函数可以通知生产者消息是否发送到了交换机。 代码如下 1.先创建交换机、队列等信息 package jot.jothot.testMq;import or…

OS 学习笔记(6) 操作系统引导

OS 学习笔记(6) 操作系统引导 这篇笔记对应的王道OS 1.5 操作系统引导&#xff0c;同时参考了 《Operating System Concepts, Ninth Edition》和 俗称ostep的《 Operating Systems: Three Easy Pieces》还有 《Operating Systems: Principles and Practice》 文章目录OS 学习笔…

实战还原--从大黄蜂样本到域控管理员技术解析

0 前言实战案例还原《BumbleBee Roasts Its Way To Domain Admin》一文详细的描述了一次渗透案例&#xff0c;但其文章组织架构建立在ATT&CK框架上&#xff0c;而不是按照时间线逻辑来组织&#xff0c;因此对于渗透人员了解学习其前后过程有些困难&#xff0c;特此梳理一番…

发布微信小程序获取收集用户信息权限

前言在发布微信小程序的时候我们经常会遇到审核不通过的情况&#xff0c;其中一种特别让我头疼就是说小程序收集、使用和储存用户信息。不给予通过。但是他们的接口又不能提供这个功能&#xff0c;并且老是改动&#xff0c;真的特别的麻烦加无语。有时候审核偷一下懒&#xff0…

算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)

文章目录回文数找出小于平均值的数旋转图像回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的…

光电耦合器和MOSFET之间的差异

光电耦合器和MOSFET之间的差异 介绍 光电耦合器/光耦合器和固态继电器&#xff08;光电MOSFET或光耦MOSFET&#xff08;OCMOS FET&#xff09;&#xff09;在保持电隔离的同时传输信号&#xff0c;但存在一些重要差异。 结构差异 下图显示了光电耦合器和OCMOS FET的主要内部…

Vue实战第2章:简单的分配页面布局

缓冲 前言 本篇在讲什么 本篇作为Vue实战的第二章&#xff0c;跟代码逻辑无关&#xff0c;主要是简单的先设计一下个人网站的各个模块内容&#xff0c;明确一下我们想要将网站做出什么样子 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上…

趣味三角——第6章——两个几何定理

第6章 两个几何定理 It is the glory of geometry that from so few principles, fetched from without, it is able to accomplish so much. (几何学的荣耀在于&#xff0c;仅从几个原理出发&#xff0c;外求于无物&#xff0c;但却能够完成如此非凡的壮举。) ——Isaac N…