- 博客(171)
- 资源 (5)
- 收藏
- 关注
原创 从高考到程序员
岁月如梭,时光荏苒六月酷暑,国之大事者,高考也。十年寒窗,只为今朝。忆往昔,峥嵘岁月,恍如昨日。遥想当年中学之往事,历历在目。 余三五入学,年方中游,身高5尺,好数理,厌文学。文理分科之初,偏爱从理,遂择理。奈何物理非余之所长,思量再三,从文是也。余初入文班,叹曰:多淑女,吾之幸也。有女其一,长余一岁,余之悦者。其形也,翩若惊鸿,婉若游龙,荣曜秋菊,华茂春松。昼夜思量,辗转反侧,茶饭不思
2017-06-10 12:59:50
2899
22
原创 管理者神功之“九”阴真经
在如今飞速发展的当下,成为技术大牛很容易,只要肯努力,很容易做到,但是想成为一名优秀的管理者,就显得不那么容易了,下面笔者将结合多年的管理经验为了大家总结出了如何成为优秀的管理者,一共有九条很重要的因素,我将其称之为“九”阴真经。1、敏锐的洞察力 作为管理者,首先需要有非常敏锐的洞察力,除了需要第一时间了解当下的最新前言技术,还应该第一时间发现员工的心理变化,做到对员工的透明化管理,
2017-05-31 13:32:48
2965
3
原创 利用开源HTML5引擎lufylegend.js结合javascript实现的五子棋人机对弈
前言 本文主要介绍利用开源引擎lufylegend.js开发基于Html5的游戏--五子棋,主要叙述其详细开发过程。游戏规则 玩过五子棋的都应该知道五子棋的规则,这里就简单介绍其规则。 1、传统五子棋的棋具与围棋大致相同,棋子分为黑白两色,棋盘为15×15,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断
2013-09-05 14:43:31
9489
2
原创 【C++ 算法详解】手把手教你找到二维数组中的鞍点
鞍点定义:在一个二维数组中,某个元素同时满足两个条件:是它所在行的最大值;是它所在列的最小值。形象理解:就像马鞍的中心点 —— 在 “行方向” 上是最高点,在 “列方向” 上是最低点。1 3 24 5 67 8 9观察元素77,8,9→ 7 是行最小值?不,不符合条件;再看元素31,3,2→ 3 是行最大值(符合条件 1);3,5,8→ 3 是列最小值(符合条件 2);→ 所以3是该数组的鞍点!本文从概念→思路→代码→优化,完整讲解了 C++ 二维数组鞍点的查找算法。
2025-11-05 13:17:16
636
原创 当编程算法邂逅数学:一场深度融合的奇妙之旅
通过以上的探讨,我们清晰地看到编程算法与数学之间存在着不可分割的紧密联系。数学作为编程的基石,在逻辑判断、数据结构构建、算法设计以及问题求解等方面都发挥着不可或缺的作用。从基础的布尔代数、离散数学,到线性代数、概率论与统计,每一个数学分支都为编程提供了独特的视角和强大的工具。在实际应用中,无论是搜索引擎的 PageRank 算法、推荐系统中的协同过滤算法,还是加密算法中的 RSA 算法,都充分体现了数学在解决复杂编程问题时的巨大价值。随着科技的不断发展,编程算法与数学的融合将更加深入和广泛。
2025-11-03 14:48:15
624
原创 解锁CSP-S真题算法:从思维到代码的破局之旅
通过对这三道 CSP-S 真题的详细解析,我们可以看到,在解决编程问题时,选择合适的算法策略至关重要。贪心策略在 01 字符串 1 移动问题和决斗问题中发挥了关键作用,它让我们在每一步都做出当前最优的选择,从而实现整体最优解。而在假期计划问题中,Floyd 算法和广度优先搜索(bfs)等经典算法则为我们提供了有效的解题思路。真题练习对于编程思维和竞赛能力的提升有着不可替代的作用。通过深入研究真题,我们可以接触到各种类型的问题和解题方法,拓宽思维视野,培养创新思维和逻辑思维能力。
2025-10-31 11:28:01
961
原创 CSP-J真题算法大揭秘:解锁信息学竞赛的通关密码
CSP-J,即软件能力认证入门级(Certified Software Professional - Junior),是由中国计算机学会(CCF)主办的面向初中生的计算机非专业级别的软件能力认证。它旨在推动计算机科学的普及,让更多青少年接触和学习计算机科学,同时为选拔优秀的计算机人才提供参考。该竞赛面向所有对计算机编程感兴趣的初中生开放,无论是否有编程基础,都可以报名参加。这为广大热爱编程的同学提供了一个展示自我的平台,鼓励他们在计算机领域探索创新。CSP-J 竞赛分为初赛和复赛两个阶段。
2025-10-31 11:25:48
1223
原创 一文吃透二叉树、完全平衡树、红黑树原理及C语言实现
二叉树是一种树形数据结构,它的每个节点最多有两个子节点,分别称为左子节点和右子节点。这使得二叉树的结构相对简单且规则,易于理解和操作。根节点:是二叉树的起始节点,它没有父节点,就像是大树的根基,所有其他节点都从根节点衍生出来。叶子节点:也叫终端节点,是没有子节点的节点,它们位于二叉树的最底层,就像树枝的末梢。度:指一个节点拥有的子树数目。二叉树中节点的度最大为 2,即每个节点最多有两个子节点。深度:从根节点到最远叶子节点的最长路径上的节点数,它反映了二叉树的层次深度。
2025-10-28 14:48:46
574
原创 从0到1吃透RSA算法:原理、安全性及应用全解析
RSA 算法作为现代密码学的璀璨明珠,以其基于大整数分解难题的独特设计,巧妙地实现了公钥与私钥的分离,成功解决了密钥分发这一关键难题,为信息安全领域奠定了坚实的基础。从数学原理上看,其密钥生成过程严谨且精妙,通过精心选择大质数、计算模数和欧拉函数,以及确定公钥和私钥指数,构建起了一套安全可靠的加密体系。在加密和解密过程中,运用简洁而深刻的数学公式,实现了信息的高效加密与准确还原。在安全性方面,RSA 算法凭借大整数分解的巨大难度,在传统计算环境下为信息提供了强有力的保护。
2025-10-27 13:16:52
1159
原创 常见排序算法详解--基于C语言实现
在本次的探索之旅中,我们深入剖析了 C 语言中常见的排序算法,包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序。这些排序算法各有千秋,冒泡排序和选择排序、插入排序虽然简单直观,但时间复杂度较高,适用于小规模数据的排序;快速排序在平均情况下表现出色,时间复杂度为OnlognO(n log n)Onlogn,是处理大规模数据的常用选择 ,但在最坏情况下性能会大幅下降;归并排序的时间复杂度稳定在OnlognO(n log n)Onlogn。
2025-10-22 10:06:13
742
原创 探秘Kali Linux中的Nmap:网络扫描的全能利器
Nmap,即 Network Mapper,是一款开源的网络扫描和安全审计工具,由 Gordon Lyon(化名 Fyodor Vaskovich)创建。它通过发送特定的网络探测包,收集目标主机或网络的响应信息,从而获取丰富的网络信息。Nmap 支持在 Linux、Windows、macOS 等多种主流操作系统上运行,这使得不同平台的用户都能方便地使用它来进行网络扫描和分析。无论是渗透测试人员在模拟攻击中收集目标网络信息,还是网络管理员进行网络设备管理与安全评估,Nmap 都能发挥重要作用。
2025-10-21 11:47:25
681
原创 一文搞懂数据结构图:原理、分类、应用及C语言算法实现
图是一种非线性数据结构,它由顶点(Vertex,也称为节点)和边(Edge)组成。可以用二元组 $ G=(V, E) $ 来表示一个图,其中 $ V $ 是顶点的有限非空集合, $ E $ 是边的集合,边用于表示顶点之间的关系。边可以是有向的,也可以是无向的。在有向图中,边具有方向,用有序对 $ langle u, v rangle $ 表示从顶点 $ u $ 到顶点 $ v $ 的一条有向边;
2025-10-16 14:28:59
827
原创 栈与队列:数据结构的基石与应用
栈和队列作为数据结构中的基础成员,以其独特的操作特性和广泛的应用领域,为我们解决各种编程问题提供了强大的工具。栈的后进先出原则使其在处理函数调用、表达式求值、括号匹配等场景中发挥着关键作用;而队列的先进先出原则则使其在任务调度、消息缓冲、广度优先搜索等方面展现出卓越的优势。无论是顺序存储还是链式存储,都为栈和队列的实现提供了多样化的选择,我们可以根据具体的应用需求和性能要求来决定使用哪种存储方式。在四则运算中,通过栈将中缀表达式转换为后缀表达式并求值的过程,充分展示了栈在解决复杂计算问题时的高效性和实用性。
2025-10-16 14:07:52
958
原创 从0到1玩转BurpSuite:Web安全测试进阶之路
Decoder(解码器):提供了丰富的编码和解码功能,能够对 URL 编码、Base64 编码、十六进制编码、HTML 编码等常见编码格式进行轻松转换。在安全测试过程中,当我们遇到经过编码的敏感信息或请求参数时,就可以使用 Decoder 模块将其解码,查看原始内容,以便分析其中是否存在安全问题。当我们拦截到一个 URL 中包含经过 URL 编码的参数时,使用 Decoder 模块进行解码,可能会发现其中隐藏的恶意代码。Decoder 模块也可以根据测试需求对数据进行编码,模拟特殊的攻击场景。
2025-09-25 14:19:11
902
原创 从 0 到 1 玩转 SRC:新手也能上手的挖洞全流程指南
SRC 是企业或机构搭建的安全应急响应平台,核心作用是 “邀请白帽黑客发现漏洞,企业修复漏洞并给予奖励”。简单说,就是 “合法找漏洞,合规拿奖励”。关键规则必须记牢明确 “测试范围”:每个 SRC 都会列出 “允许测试的资产”(如域名、IP 段、APP 名称),严禁测试范围外的资产(比如企业内部系统、用户私人数据);遵守 “测试红线”:禁止使用 DDOS 攻击、暴力破解(无授权)、破坏数据等破坏性手段,测试过程中不能影响业务正常运行;
2025-09-24 17:12:45
691
原创 揭开AI神秘面纱:大语言模型原理与Python极简开发
大语言模型作为人工智能领域的关键技术,其强大的语言理解和生成能力正深刻改变着我们的生活和工作方式。通过深入探讨 Transformer 架构、Tokenizer 分词技术以及自监督学习算法等核心原理,我们揭开了大语言模型的神秘面纱,理解了其背后的技术逻辑。而用 Python 搭建简易大语言模型的实践过程,让我们亲身体验了从数据处理到模型训练与测试的各个环节,对大语言模型的开发有了更直观的认识。尽管这个简易模型与实际应用中的大语言模型相比还有很大差距,但它为我们提供了一个宝贵的学习和探索的起点。
2025-09-24 17:00:26
932
原创 GESP、CSP-J/S、NOIP 学习细节大揭秘
最近好多小伙伴问我关于 GESP、CSP-J/S 还有 NOIP 的学习方法,今天咱就好好唠唠这些信息学竞赛相关的学习细节,绝对不整那些虚头巴脑、笼统的东西哈。
2025-09-17 15:55:28
1501
原创 零信任架构:重塑网络安全攻防新格局
在当今数字化转型加速推进的时代,企业的网络边界日益模糊,传统基于网络边界的安全防护体系,已难以有效应对层出不穷的网络安全威胁。零信任架构,作为一种颠覆传统安全理念的新兴技术,正逐渐崭露头角,为网络安全攻防带来了全新的思路与解决方案。
2025-09-17 15:34:52
643
原创 MyBatis-Plus 拦截器加载失败的解决方案
因此,为了解决这个问题,我们需要再SqlSessionFactory里面手动注入MybatisPlusInterceptor。但是运行程序后,调用selectPage方法,发现控制台没有执行count语句,查询sql语句也没有添加limit,这是什么原因呢?在集成Mybatis-plus插件后,可以添加一些拦截器以实现特殊需求,比如分页插件、乐观锁插件等。这时候SqlSessionFactory会覆盖上面的拦截器插件自定义。这样分页插件就能生效并且成功执行分页查询了!
2025-08-26 09:17:18
193
原创 DVWA漏洞平台学习之Medium级别
在Medium级别,DVWA平台对每个漏洞都加入了一定程度的WAF,它不像LOW级别那样,可以轻松的利用每个漏洞。在Medium级别下,我们需要想办法绕过WAF。我们首先改变DVWA Security为Medium级别,然后开始对每个漏洞进行利用。0x00 Brute Force-暴力破解查看源码:可以拿到,它登录失败后,增加2秒的睡眠时间,我们依然可以爆破,只是增加了爆破时间而已。0x01 Command Injection-命令注入0x02 CSRF-客户端请求伪造0x03 File I
2022-12-01 15:36:54
704
原创 数据库访问程序别在对密码加密了,那是掩耳盗铃的做法
各位看官一看到我这个标题,可能会一脸懵逼,这也是我在实际项目发现的问题。我发现,很多不懂安全的工程师,在搭建项目框架时,在涉及到密码的配置项时,喜欢对密码做一层加密,这样做表面像好像密码没有暴露在外,比如这样的:表面上一看,确实看不到密码,但是作为黑客,这种跟明文密码一样是裸奔,我们一看,下面有个privateKey,就知道是个RSA加密的,他的逻辑就是在应用启动时,框架会对密文进行解密再进行数据库连接,密码是个16进制字符串,我们知道RSA加密后一般以Base64呈现的,把16进制转换成Bas64就
2021-09-17 14:21:09
1256
原创 java23种设计模式十五(连载)
备忘录模式备忘录模式又称备份模式、标记模式。顾名思义,其就是在某一时刻保存当前状态,作为备份,以便下次可以使用,或者恢复到上一次的状态。备忘录模式分为三个角色:普通类:用于定义要备份的对象备份类:用于备份普通对象上一次的操作、状态备份管理类:用于保存恢复备份备忘录模式的应用范围很广,我相信大家都下过棋,在下棋时,由于自己的粗心,导致下错了,这时你想悔棋,就会用到备忘录模式。在备忘录模式,我们需要保存上一次下棋的落子点,在当前下棋出现失误的时候,才能恢复到上一次的状态。下面,我就以围棋为
2021-06-03 09:38:31
480
1
原创 网络协议安全与实战之网络接口层协议
网络接口层是TCP/IP协议定义的层级,事实上,人们会将它按照ISO/OSI模型拆分为物理层和数据链路层。接下来,我将分别介绍物理层和数据链路层底层原理和涉及到的主流协议。物理层数据链路层...
2021-02-08 08:52:54
1554
原创 某平台后台系统存在任意账号密码重置漏洞
漏洞发现进入该后台地址,发现有忘记密码入口点击进入“忘记密码页面”,随手输入admin,显示出了 隐藏的手机号,需要发送验证码才能重置密码。我的专业性告诉我,这里可能存在任意密码重置漏洞,于是尝试利用。漏洞利用点击“发送验证码”按钮,随便输入验证码和密码 ,此时,我并不知道验证码是多少位的,理论上,少于5位都容易被破解。于是我利用BurpSuit抓包,先尝试4位数的验证码,并且爆破。由于成功失败返回内容长度一样,当时不知道是否爆破成功,等待片刻,输入重置的密码,发现可以登录。漏洞危害
2020-11-02 13:51:20
2016
原创 某网站登录页面存在用户手机号信息泄露
漏洞利用输入用户名,界面将弹出手机号,看似手机号被隐藏了,但是通过抓取http包,发现后台其实返回了手机号,由此可知,改手机号只在前端做了隐藏处理。而且该接口没有做任何校验,可以任意调用,于是开启了BurpSuit的爆破征程。通过该接口可以爆出大量已注册的手机号,导致手机号信息泄露。漏洞修复后端不要返回手机号,应同前端一样,隐藏中间四位。想学习更多网络安全的知识,可以关注公众号“SCLM安全团队”。...
2020-10-26 15:48:14
3517
6
原创 2020全国工业互联网安全技术技能大赛Web题WP
0x00 SimpleCalculator打开后,发现flag.php可执行数学函数,在网上找到一个原题:https://www.cnblogs.com/20175211lyz/p/11588219.html可执行shell拿到flag。payload如下:http://eci-1cei547jhyas2r4f5r2.cloudeci1.ichunqiu.com/flag.php?search=\$pi=(is_nan\^(6).(4)).(tan\^(1).(5));\$pi=\$\$pi;\$p
2020-10-25 09:40:02
6732
8
原创 记一次绕过验证码次数限制漏洞挖掘
漏洞发现点击登陆,输入手机号,点发送验证码,弹出对话框要求输入图片验证码,我输入后用BurpSuit拦截请求继续重放,发现后台应该没有校验图片验证码,一样可以发送。尝试重放,发送多次后,发现提示发送次数达到上限,换个手机号,还是这个提示。开始我以为对cookie做了校验,切换浏览器后,依然不行,想到应该对ip地址做了判断,于是想到了XFF攻击。漏洞利用HTTP请求头会将IP地址放到X-Forwarded-For中,于是在请求报文中,尝试手动改变该请求头的值:这样可以绕过次数限制,造成短信炸
2020-10-10 13:36:27
1899
原创 浅析一次任意用户注册漏洞挖掘过程
漏洞发现输入手机号,点击发送验证码,发现验证码只有4位数字,我的经验告诉我,此处有一定概率存在任意用户注册漏洞。漏洞利用输入手机号,点击发送验证码,再依次输入验证码(此处随便输入,方便抓包)和密码,用BurpSuit抓包,并尝试验证码爆破。最终成功注册。漏洞修复1.验证码设置为6位数。2.对验证码校验做限制,如输错5次则要求输入图片验证码。3.对同一个手机号,只允许有限次的错误校验。...
2020-10-09 17:11:36
3002
3
原创 2020巅峰极客Web题---Easy Flask
看标题,猜测改网站用的事Flask框架,搜索引擎一搜,发现Flask存在模板注入漏洞:于是大概可以推测,题目应该考察的是模板注入漏洞。打开题目网址,有个登录页面,输入用户名,进入下面的页面:...
2020-09-28 20:40:54
1909
原创 使用Wireshark工具分析网络协议
上一章,我们了解了整个网络协议的七层和四层模型。从本章开始,我们将正式进入到网络协议的学习当中,如果只是单纯地讲解理论知识,这将非常抽象,因此,学习网络协议最好的方式就是借助工具,而在网络协议抓包领域最好的工具就是Wireshark。在正式接触网络协议之前,我们应先学习Wireshark的使用以及如何通过Wireshark抓取协议包,在后面的具体的网络协议学习,Wireshark将始终陪伴着我们。0x00 Wireshark简介Wireshark是一个网络封包分析软件。网络封包分析软件的功能是抓取网络封
2020-09-22 13:50:02
5283
原创 导读:什么是 Spring Cloud 及应用现状
Spring Cloud 是什么?在学习本课程之前,读者有必要先了解一下 Spring Cloud。Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说:S...
2020-09-22 12:16:01
984
原创 第01课:Spring Boot 入门
什么是 Spring BootSpring Boot 是由 Pivotal 团队提供的基于 Spring 的全新框架,其设计目的是为了简化 Spring 应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而使开发者无需定义大量的 XML 配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域成为领导者。Spring Boot 并不重复造轮子...
2020-09-22 12:16:00
549
原创 第02课:Spring Boot 进阶
上一篇带领大家初步了解了如何使用 Spring Boot 搭建框架,通过 Spring Boot 和传统的 SpringMVC 架构的对比,我们清晰地发现 Spring Boot 的好处,它使我们的代码更加简单,结构更加清晰。从这一篇开始,我将带领大家更加深入的认识 Spring Boot,将 Spring Boot 涉及到东西进行拆解,从而了解 Spring Boot 的方方面面。学完本文后,...
2020-09-22 12:15:58
501
原创 第03课:Spring Boot 启动原理
引言Spring Boot 大大简化了我们的开发配置,节省了大量的时间,确实比较方便。但是对于新手来说,如果不了解个中原理,难免会遇到坑。本文作者将带领大家走近神秘的 Spring Boot,一步步破开它的神秘面纱,探索 Spring Boot 的启动原理。开发任何基于 Spring Boot 的项目,我们都会使用以下的启动类:import org.springframework.boot...
2020-09-22 12:15:57
524
原创 第04课:初识 Spring Cloud
Spring Cloud 基于 Spring Boot,因此在前几篇,我们系统地学习了 Spring Boot 的基础知识,为深入研究Spring Cloud打下扎实的基础。从本章开始,我们将正式进入探索Spring Cloud秘密的旅程中。学习完本课程后,读者将从中学习到如何搭建一个完整的分布式架构,从而向架构师方向靠近。微服务概述根据百度百科的描述,微服务架构是一项在云中部署应用和服务的...
2020-09-22 12:15:55
377
原创 第05课:服务注册与发现
我们知道,微服务是一个架构思想,而 Spring Cloud 集成了用以实现微服务架构的方方面面。从本文开始,我将带领大家逐个击破 Spring Cloud 的各个模块。本文,我们先来学习服务的注册与发现,Spring Cloud Netflix 的 Eureka 组件是服务于发现模块,下面我们将学习它。服务注册与发现模块分为服务注册中心和服务提供者,接下来,我将一一讲解。服务注册中心首先...
2020-09-22 12:15:53
474
原创 第06课:服务网关
本文,我们将学习 Spring Cloud的另一个组件:zuul,它提供微服务的网关功能,即中转站,通过它提供的接口,可以转发不同的服务。在学习 zuul 之前,我们先接着上一篇的代码,来看看服务提供者是如何提供服务的。在服务提供者的 module 下创建 HelloController 类,添加内容如下:@RestControllerpublic class HelloController...
2020-09-22 12:15:52
335
原创 第07课:服务消费者
前面我们提到,对外提供接口通过 zuul 服务网关实现。一个大型的系统由多个微服务模块组成,各模块之间不可避免需要进行通信,一般我们可以通过内部接口调用的形式,服务 A 提供一个接口,服务 B 通过 HTTP 请求调用服务 A 的接口,为了简化开发,Spring Cloud 提供了一个基础组件方便不同服务之间的 HTTP 调用,那就是 Feign。什么是 FeignFeign 是一个声明式的 ...
2020-09-22 12:15:51
262
原创 第08课:服务异常处理
上一篇,我们讲了服务之间的相互通信,利用 Feign 的声明式 HTTP 客户端,通过注解的形式很容易做到不同服务之间的相互调用。我们的服务最终是部署在服务器上,因为各种原因,服务难免会发生故障,那么其他服务去调用这个服务就会调不到,甚至会一直卡在那里,导致用户体验不好。针对这个问题,我们就需要对服务接口做错误处理,一旦发现无法访问服务,则立即返回并报错,我们捕捉到这个异常就可以以可读化的字符串...
2020-09-22 12:15:49
614
原创 第09课:配置中心
通过前面章节,我们已经学习了 SpringCloud 的很多组件,每个组件都创建了一个工程,而每个工程都会有一个配置文件,并且有些配置是一样的。例如:在实际项目中,我们创建了用户和订单两个服务,这两个服务是同一个数据库,那么我们在这两个服务的配置文件都会配置相同的数据源,一旦我们的数据库地址发生改变(只是一种情况),用户和订单两个服务的配置文件都需要改,这还是只是两个服务,在一个大型系统(比如淘宝...
2020-09-22 12:15:48
234
重写easyui源码
2017-04-25
java超炫分页标签
2011-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅