当前位置: 首页 > news >正文

Wifi通信协议:WEP,WPA,WPA2,WPA3,WPS

前言

无线安全性是保护互联网安全的重要因素。连接到安全性低的无线网络可能会带来安全风险,包括数据泄露、账号被盗以及恶意软件的安装。因此,利用合适的Wi-Fi安全措施是非常重要的,了解WEP、WPA、WPA2和WPA3等各种无线加密标准的区别也是至关重要的。

WPA(Wi-Fi Protected Access)是用于保护无线网络连接的计算设备内部的安全标准。它由Wi-Fi联盟开发,用来替代原先的无线安全标准WEP(Wired Equivalent Privacy),并在数据加密和用户认证方面表现优越。自1990年代后期以来,Wi-Fi安全类型经历了许多演变和改进。

WEP

WEP是什么

由于无线网络通过电波传输数据,如果不采取安全措施,数据很容易被拦截。WEP(Wired Equivalent Privacy)是无线保护的最初尝试,1997年引入,旨在通过加密数据来增强无线网络的安全性。因为数据是加密的,即使无线数据被拦截,拦截者也无法识别数据,而在认证的网络系统上,可以识别并解密数据。这是因为网络上的设备使用相同的加密算法。

WEP使用16进制64位或128位密钥加密流量。密钥是静态的,所有流量都使用相同的密钥加密。使用WEP密钥,网络上的计算机可以隐藏消息内容,防止入侵者查看,加密的消息可以交换。使用此密钥,可以连接到安全的无线网络。

WEP协议原理

尽管现已被认为是不安全的,但理解WEP的原理有助于认识无线网络安全发展的历程。以下是WEP协议的基本原理:WEP使用对称加密算法RC4对数据进行加密。发送端和接收端使用相同的密钥来加密和解密数据。

初始化向量(IV):WEP引入了24位的初始化向量(IV),用于与密钥结合生成每个数据包的加密密钥。IV与WEP密钥(通常为40位或104位)组合,形成RC4流密码的密钥流。

数据包通信过程

  • 每个数据包在发送之前,首先计算校验和(Integrity Check Value, ICV),然后将数据包和ICV进行RC4加密。加密后的数据包与IV一起发送。
  • 接收端使用接收到的IV和预共享密钥生成相同的RC4密钥流,解密数据包并验证ICV,以确保数据的完整性。

加解密过程

  • 密钥流生成器使用预共享密钥和IV作为输入,生成一个伪随机密钥流。数据与ICV一起,通过RC4密钥流进行按位异或(XOR)运算,生成加密数据包。IV以明文形式附加在加密数据包的前面,发送给接收方。
  • 接收端从接收到的数据包中提取IV。使用提取的IV和预共享密钥生成相同的RC4密钥流。对加密数据进行按位异或运算,恢复原始数据和ICV。计算接收到的数据的ICV,并与解密得到的ICV进行比较。如果匹配,则数据包被认为是完整和有效的。
    在这里插入图片描述

黑客分析

WEP的主要目标之一是防止长期存在的中间人攻击。然而,尽管WEP标准进行了协议修订和密钥长度增加,但时间的推移暴露了其安全缺陷。随着计算能力的提高,网络犯罪分子能够更容易地利用这些缺陷进行漏洞攻击。

由于IV长度只有24位,可能出现重复使用的情况,这使得攻击者可以通过分析多个数据包之间的密钥流差异来破解密钥。

WEP通常使用静态预共享密钥,难以有效管理和更新,增加了密钥泄露的风险。

某些IV组合会导致RC4密钥流的某些字节易于预测,攻击者可以利用这些弱IV来破解密钥。

解决方案

由于WEP的这些安全缺陷,在2004年正式宣布退役WEP。Wi-Fi联盟和IEEE引入了更强的安全协议,包括WPA和WPA2。这些协议使用更强的加密算法(如AES),并引入了动态密钥管理等机制,大大提高了无线网络的安全性。接下来介绍目前最常用的WPA/WPA2协议


WPA

WPA是什么

随后,WPA(Wi-Fi Protected Access)于2003年推出,作为WEP的替代协议。WPA和WEP有相似之处,但改进了安全密钥的处理方式和用户认证方式。WEP向每个系统提供相同的密钥,而WPA使用TKIP(临时密钥完整性协议)动态更改系统使用的密钥,防止入侵者生成并使用加密密钥与安全网络匹配。TKIP加密标准后来被AES(高级加密标准)取代。

此外,WPA具备消息完整性检查功能,可以判断数据包是否被攻击者捕获或篡改。WPA使用的密钥是256位的,比WEP系统使用的64位或128位密钥更强大。尽管有这些改进,WPA的部分元素仍可能被利用,这促使WPA2的出现。

提到WPA,可能听说过“WPA密钥”这个术语。WPA密钥是用于连接无线网络的密码。任何使用网络的人都可以获得WPA密码。无线路由器上常常印有默认的WPA口令或密码。如果不知道路由器的密码,可以重置密码。

四路握手协议(4-Way Handshake)

这是 WiFi 身份认证的一个过程,如果你是hacker没有通过他的身份验证就不能加入他的局域网当中。所以我们就必须了解这个过程:

关键术语
- PSK(Pre-Shared Key, 预共享密钥):PSK 是预共享密钥,是用于验证 L2TP/IPSec 连接的 Unicode 字符串
- TKIP(临时密钥完整性协议):TKIP 是 WPA 的核心组件,用于解决 WEP 的密钥管理问题。TKIP 动态生成加密密钥,并在每个数据包发送前改变密钥。
- Nonce: 一个随机生成的值,只使用一次。
- PTK(Pairwise Transient Key, 成对临时密钥): 最终用于加密单播数据流的加密密钥。
- GTK (Group Temporal Key, 组临时密钥):最终用于加密广播和组播数据流的加密密钥。
- PMK(Pairwise Master Key, 成对主密钥):认证者用来生成组临时密钥(GTK)的密钥,通常是认证者生成的一组随机数。
- GTK(Group Transient Key,组临时密钥):由组主密钥(GMK)通过哈希运算生成,是用来保护广播和组播数据的密钥。
- MIC(message integrity code,消息完整性校验码)。针对一组需要保护的数据计算出的散列值,用来防止数据遭篡改。
- 802.1X 提供了基于端口的网络访问控制,确保只有经过认证的用户才能访问网络。
- EAP 是一个灵活的认证框架,支持多种认证方法(如证书、智能卡、用户名和密码等)。
工作流程
  1. 认证阶段:
    开放系统认证:客户端发送认证请求,接入点(AP)响应认证成功。
    802.1X 认证:客户端和认证服务器通过 EAP 进行相互认证。成功后,认证服务器生成会话密钥,并发送给客户端和 AP。

  2. 密钥交换阶段:用于建立 TKIP 密钥,并确保双方拥有相同的会话密钥。

    • 过程如下:

      1. AP 发送 ANonce(随机数)给客户端。
      2. 客户端生成 SNonce(随机数),并计算 PTK(Pairwise Transient Key),然后发送 SNonce 和 MIC 给 AP。
      3. AP 计算 PTK,并与客户端确认 MIC,发送 GTK(Group Temporal Key)和 MIC 给客户端。
      4. 客户端确认 MIC,并生成 GTK。

    在这里插入图片描述

  3. 数据加密和传输阶段:
    使用 RC4 流加密算法进行数据加密,结合 IV 和 TKIP 生成的密钥,确保每个数据包使用不同的 IV 唯一性。
    每个数据包附带 MIC,以保证数据完整性。

黑客分析

这里要说一下,别看前面的加密很复杂,但是个过程使用工具可以轻松破解,这里我不能教你破解,除非你想害我(想学)(◉3◉)。

WPA-PSK(Pre-Shared Key)破解
  • 暴力破解(Brute Force Attack):如果使用的预共享密钥(PSK)较短或简单,攻击者可以通过暴力破解或字典攻击获取密钥。
  • 捕获四路握手:攻击者可以使用工具(如Aircrack-ng、Wireshark)捕获四路握手包,然后离线进行暴力破解。
中间人攻击(MITM):
  • Evil Twin攻击(邪恶双子):攻击者创建一个伪造的接入点,诱使用户连接,从而截获用户的流量并窃取敏感信息。
  • KARMA攻击(密钥重装攻击):利用设备自动连接到已知网络的特性,创建伪造的网络名称,使得设备自动连接到攻击者的AP。
  • Deauth 攻击:
    Deauthentication Attack Detection(取消身份验证洪水攻击)他是无线网络拒绝服务的攻击一种形式的状态,攻击原理:一个 AP 连接了路由器在正常访问网络,这个时候 Hacker 利用自己电脑或者其他设备进行伪造取消身份认证的报文,路由器就会以为是 AP 发过来的需要和AP断开连接,已经连接的设备会自动断开。(我们在手机里面打开 WiFi 来寻找附近的 WiFi 时,其实不是你的手机在寻找 WiFi 而是路由器在根据 802.1x 帧寻找),一句话概括可以让你断网

后续就可以社工了,执行钓鱼攻击:创建仿冒的Wi-Fi登录页面,诱使用户输入密码。攻击者可以通过Evil Twin攻击或中间人攻击来实现这一点。

WPA2是什么

WPA2是2004年引入的WPA升级版。WPA2利用RSN(强健安全网络),以两种模式运行:

  • 个人模式或预共享密钥(WPA2-PSK) – 使用共享密码进行访问,通常用于家庭网络环境。
  • 企业模式(WPA2-EAP) – 顾名思义,适用于企业组织和商业用途。

这两种模式都使用CCMP(计数器模式密码块链接消息认证代码协议)。CCMP协议基于AES(高级加密标准)算法,具备消息认证和完整性验证功能。CCMP比WPA的TKIP(临时密钥完整性协议)更可靠和强大,使得攻击者更难识别模式。

然而,WPA2也有缺点。例如,它容易受到KRACK(密钥重装攻击)的攻击。KRACK利用WPA2的漏洞,攻击者可以通过伪装成克隆网络,使受害者连接到不安全的网络,从而解密小数据块,并聚合这些块解密加密密钥。然而,通过设备打补丁,WPA2仍被认为比WEP和WPA更安全。

现在大部分使用WPA/WPA2,他们的差异还是不太大的。


防御措施

为了防止上述攻击,以下是一些推荐的防御措施:

强密码:使用长度较长且复杂的预共享密钥(PSK),避免使用容易猜测的密码。禁用WPS:除非绝对必要,否则禁用WPS功能以防止PIN码破解攻击。定期更新固件:确保路由器和客户端设备的固件是最新的,以防止已知漏洞(如KRACK攻击)被利用。使用WPA3:尽快过渡到WPA3,它提供了更强的安全性和保护机制,如SAE和前向保密。网络监控和入侵检测: 使用无线入侵检测系统(WIDS)监控网络中的异常活动,及时发现和响应潜在的攻击。禁用TKIP: 确保网络配置仅使用AES-CCMP,不使用TKIP。

WPA3是什么

WPA3是WPA(Protected Access protocol)系列的第三代。WPA3于2018年由Wi-Fi联盟推出,针对个人和企业用户引入了以下新功能:

  • 数据的个别加密:在登录公共网络时,WPA3使用共享密码之外的过程来进行设备注册。WPA3通过Wi-Fi DPP(Device Provisioning Protocol)系统使用NFC(近场通信)标签或QR码来授权用户设备。此外,WPA3安全性使用GCMP-256加密,而不是以前使用的128位加密。

  • SAE(同等性同时认证)协议:SAE协议用于在网络设备连接到无线接入点时,执行安全握手,即使用户密码较弱,WPA3也通过Wi-Fi DPP实现高安全性的握手。

  • 增强对暴力破解攻击的防护:WPA3通过只允许用户进行一次密码猜测,来防止离线密码猜测。(这玩意黑客防不防的住不知道,输错密码的你小心他把你防了)。这意味着用户必须实际操作连接到Wi-Fi的设备,从而在猜测密码时必须在现场。由于WPA2没有包含公共开放网络的加密或隐私,因此暴力破解攻击是一大威胁。

自2019年起,WPA3设备开始广泛使用,并与使用WPA2协议的设备向后兼容。
了解您使用的Wi-Fi安全类型

了解Wi-Fi的加密类型对网络安全至关重要。与新协议相比,旧协议存在更多漏洞,更容易遭受黑客攻击。由于旧协议在设计后,黑客已完全掌握其攻击方法,而新协议修复了这些漏洞,因此被认为能够提供最佳的Wi-Fi安全性。但是新的技术还是需要时间来普及

Dragonblood攻击:

已知攻击和潜在漏洞,Dragonblood是一个已知的针对WPA3-SAE(Simultaneous Authentication of Equals)的漏洞,发现于2019年。

  • 原理:该攻击利用了WPA3中的侧信道信息泄漏和密码派生函数的缺陷。

  • 具体攻击方法:

    • 侧信道攻击:通过测量设备在处理不同密码时的时间或能量消耗,推测出可能的密码。
    • 字典攻击:利用密码派生函数的弱点,攻击者可以在特定条件下对WPA3-SAE进行离线字典攻击,从而猜测出用户密码。
    • 防范措施:厂商发布了固件更新,修补这些漏洞。确保所有设备都安装了最新的固件和安全补丁。

WPS

Wi-Fi Protected Setup(WPS)是一种简化无线网络安全配置的协议,旨在帮助用户轻松地为无线网络设置安全连接。尽管WPS简化了连接过程,但其设计中存在多个安全漏洞,使其成为攻击目标。

连接方法:PIN码方法,按钮方法,近场通信(NFC),USB方法

由于WPS的安全漏洞,强烈建议禁用WPS功能。大多数无线路由器允许用户在设置界面禁用WPS。不要只为了一时的方便,留下巨大的安全隐患。

相关文章:

Wifi通信协议:WEP,WPA,WPA2,WPA3,WPS

前言 无线安全性是保护互联网安全的重要因素。连接到安全性低的无线网络可能会带来安全风险,包括数据泄露、账号被盗以及恶意软件的安装。因此,利用合适的Wi-Fi安全措施是非常重要的,了解WEP、WPA、WPA2和WPA3等各种无线加密标准的区别也是至…...

开源【汇总】

开源【汇总】 前言版权推荐开源【汇总】最后 前言 先占个位 2024-6-21 21:29:33 以下内容源自《【创作模板】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog.csdn.net 禁止其他平台发…...

英文字母表

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 英文字母表 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){foreach (var item in panel1.Controls){if (item ! null)…...

Redis缓存穿透

缓存穿透: 查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库。 方法一: 方法二: 布隆过滤器: 简单来说就是一个二进制数组,用0和1来判断数组中是否存在…...

SHELL脚本学习(十一)正则表达式

一、锚点字符 1.1 锚点行首 脱字符(^)指出行首位置 $ cat < file1 test line1 test line2 test line3 line4 test#打印所有包括文本 test的行 $ sed -n /test/p file1 test line1 test line2 test line3 line4 test#打印所有以test为首的行 $ sed -n /^test/p file1 test…...

Leetcode Java学习记录——代码随想录哈希表篇

文章目录 哈希表几种哈希实现 Java数组HashSetmap方法charAt()toCharArray()for 遍历长度 哈希表 当需要快速判断一个元素是否出现在集合里的时候&#xff0c;就要用到哈希表。 无限循环就意味着重复出现。 几种哈希实现 数组&#xff1a;大小固定set&#xff1a;只存keymap…...

我又挖到宝了!小米、352、希喂宠物空气净化器除毛能力PK

养宠家庭常常因为猫咪们掉毛的问题烦恼。无论是短毛猫还是长毛猫&#xff0c;它们的毛发总是无处不在&#xff0c;从沙发到地毯&#xff0c;从床铺到衣物&#xff0c;甚至飘散在空气中。其中最难清理的就是飘浮在空气中的浮毛&#xff0c;最让人担心的是&#xff0c;空气中的浮…...

每月 GitHub 探索|10 款引领科技趋势的开源项目

1.IT-Tools 仓库名称&#xff1a; CorentinTh/it-tools 截止发稿星数: 16842 (近一个月新增:5744) 仓库语言: Vue 仓库开源协议&#xff1a; GNU General Public License v3.0 引言 CorentinTh/it-tools 是一个开源项目&#xff0c;提供各种对开发者友好的在线工具&#xff0…...

【如何让新增的Android.mk参与编译】

步骤1&#xff1a; 你需要在你新增的Android.mk目录以上的位置找一个已有的Android.mk 步骤2&#xff1a; 在原本已有的Android.mk中加入&#xff1a; //这是你新增的Android.mk文件的路径 include $(LOCAL_PATH)/xxx/xxx/Android.mk如果有些多可以这样写 //dir1 dir2是你新…...

【windows|009】计算机网络基础知识

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 ​ &#x1f3c5;阿里云ACE认证高级工程师 ​ &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社…...

C语言循环中获取之前变量的值

获取上个数组变量的值 #include <stdio.h> #include <string.h>enum { GG, DD }; int main() {int bi[] {0, 0};int bi_s1[] {0, 0};for (int i 0; i < 5; i) {memcpy(bi_s1, bi, sizeof(bi));bi[GG] i * 3;bi[DD] i * 2;printf("bigg %d, bigg_s1 …...

must be built with the ios 17 sdk or later,included in Xcode 15 or later.

2024.4.29 号开始&#xff0c;苹果又开始搞开发者了。 Xcode - 支持 - Apple Developer xcode可以从这里下载&#xff0c; Sign In - Apple 电脑不支持&#xff0c;头疼&#xff0c;必须 macOS Ventura 13.5 或以上才能支持。 电脑哪里搞&#xff0c;再买一台吗&#xff1f; 用…...

Unity2D计算两个物体的距离

1.首先新建一个场景并添加2个物体 2.创建一个脚本并编写代码 using UnityEngine;public class text2: MonoBehaviour {public GameObject gameObject1; // 第一个物体public GameObject gameObject2; // 第二个物体void Update(){// 计算两个物体之间的距离float distance Vec…...

Spring IOC 控制反转(注解版)

Spring IOC 控制反转 文章目录 Spring IOC 控制反转一、前言什么是控制反转&#xff08;IOC&#xff09;什么是依赖注入&#xff08;DI&#xff09; 二、介绍 IOC2.1 传统思想代码2.2 解决方案2.3 IOC思想代码2.4 IOC 使用&#xff08;Autowired依赖注入&#xff09;2.5 IOC 优…...

串口触摸屏的键盘控制

&#xff08;text 属性txt_maxl 800&#xff09; ①变量loadpageid.val&#xff1a;调用页的页面ID。 ②变量loadcmpid.val&#xff1a;调用页的控件ID。 ③定时器tm0&#xff1a;让输入框有个光标不断闪烁&#xff0c;如果不需要&#xff0c;控件属性en0即可。 ④变量inputlen…...

xss初识(xss-lab)

XSS跨站脚本 XSS漏洞概述 XSS被称为跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&#xff0c;由于和CSS&#xff08;Cascading Style Sheets&#xff09; 重名&#xff0c;所以改为XSS。 XSS主要基于javascript语言完成恶意的攻击行为&#xff0c;因为javascri…...

Autodesk Revit产品痛点

1.Revit已有20多年的历史&#xff0c;大多数软件公司认为大多数代码最多只有10年的生命周期。 2.Revit核心部分仍局限于单个CPU核心上,严重制约性能提升。 3.Revit只在数据库的大小和小细节上的改动。 4.Revit陈旧的绘图技术和性能难以提升。 5.Revit的致命弱点是模型增长的…...

如何使用Windows备份轻松将数据转移到新电脑?这里有详细步骤

序言 我们都知道那种买了一台新电脑,就想直接上手的感觉。我记得在过去的日子里,要花几个小时传输我的文件,并试图复制我的设置。在当今传输数据的众多方法中,Windows备份提供了一个简单可靠的解决方案。 登录到你的Microsoft帐户 Microsoft在传输过程中使用其云存储来保…...

【linux】操作系统使用wget下载网络文件,内核tcpv4部分运行日志

打印日志代码及运行日志(多余日志被删除了些)&#xff1a; 登录 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/commit/55a53caa06c1472398fac30113c9731cb9e3b482 测试步骤和手段&#xff1a; 1、清空 kern.log&#xff1b; 2、使用wget 下载linux-6.9.tar.gz&…...

QT中常用控件的样式美化,已上传相应的qss样式和图片资源

1、QComboBox /*仅仅输入框*/ QComboBox {background-color: transparent;border-image: url(:/images/systemSetImage/common/comboBoxBk.png);border: 1px solid #7285CA...

Vue form表单验证

el-form 标签添加 ref、rules <el-form ref"form" :inline"true" :model"form" :rules"rules">el-form-item 添加prop <el-form-item label"姓名" prop"name"><el-input placeholder"请输入姓…...

vue.extend解决vue页面转构造函数暴露js供全局使用

用途: 解决在一些微前端项目中, B工程使用A工程的弹窗代码 // MaterialListPlugin.js文件, 在项目入口引入 // eg: 在main.js中添加一行 import /components/MaterialListPlugin.jsimport Vue from vue import MaterialListPlugin from /components/MaterialListPlugin.vue //…...

Java中如何处理异常?

在Java中处理异常是确保软件健壮性和提高代码质量的重要手段。以下是Java异常处理的一些关键点和最佳实践&#xff1a; 1&#xff1a;理解异常类型&#xff1a; Java中的异常分为检查异常&#xff08; checked exceptions&#xff09;和非检查异常&#xff08;un-checked exc…...

wordpress站群搭建3api代码生成和swagger使用

海鸥技术下午茶-wordpress站群搭建3api代码生成和swagger使用 目标:实现api编写和swagger使用 0.本次需要使用到的脚手架命令 生成 http server 代码 goctl api go -api all.api -dir ..生成swagger文档 goctl api plugin -plugin goctl-swagger"swagger -filename st…...

如何在使用 Qt 时打印到控制台

在开发过程中&#xff0c;打印变量值到控制台对于调试和监控非常重要。使用 Qt 和 C 开发时&#xff0c;有多种方法可以实现这一点。在本文中&#xff0c;我们将探索几种在 Qt 中打印到控制台的专业方法。 1. 使用 qDebug、qWarning、qCritical 和 qFatal Qt 提供了一些方便的…...

ffmpeg音视频开发从入门到精通——ffmpeg下载编译与安装

音视频领域学习ffmpeg的重要性 音视频领域中ffmpeg的广泛应用&#xff0c;包括直播、短视频、网络视频、实时互动和视频监控等领域。掌握FM和音视频技术可以获得更好的薪酬。 学习建议音视频学习建议与实战应用 音视频处理机制的学习&#xff0c;需要勤加练习&#xff0c;带…...

数据通信与网络(三)

物理层概述&#xff1a; 物理层是网络体系结构中的最低层 它既不是指连接计算机的具体物理设备&#xff0c;也不是指负责信号传输的具体物理介质&#xff0c; 而是指在连接开放系统的物理媒体上为上一层(指数据链路层)提供传送比特流的一个物理连接。 物理层的主要功能——为…...

盲盒小程序模式?有什么功能?

近些年&#xff0c;盲盒成为了热门的休闲娱乐消费方式&#xff0c;深深吸引着消费者的目光&#xff0c;行业更是持续上升发展&#xff0c;成为了具有巨大发展前景的行业之一。 随着市场的逐步发展&#xff0c;盲盒也开始向线上模式发展&#xff0c;以互联网为媒介&#xff0c;…...

【MySQL进阶之路 | 高级篇】InnoDB搜索引擎行格式

1. COMPACT行格式 COMPACT行格式是MySQL5.1的默认行格式.其结构示意图如下. 大体可以分为两部分. 记录的额外信息.这里面有包括变长字段长度列表&#xff0c;NULL值列表和记录头信息.记录的真实数据. (1).变长字段长度列表 MySQL支持一些变长的数据类型.比如VARCHAR(m), VA…...

大数据面试-Scala

谈谈scala的闭包、柯里化、高阶函数 如果一个函数&#xff0c;访问到了它的外部&#xff08;局部&#xff09;变量的值&#xff0c;那么这个函数和他所处的环境&#xff0c;称为闭包。 闭包在函数式编程中是一个重要的概念&#xff0c;广泛用于高阶函数、柯里化等技术中。 函数…...

wordpress网站菜单固定/整站优化工具

本文主要介绍在Windows系统环境下&#xff0c;搭建能在Eclipse中运行python程序的环境。 一、Eclipse 下载与安装&#xff1a; Eclipse是写JAVA的IDE&#xff0c;下载地址为&#xff1a;http://www.eclipse.org/downloads/ 下载安装&#xff0c;网上教程很多&#xff0c;不赘述…...

cms代码做网站/什么是seo教程

目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Microsoft Windows (64-bit) 10 版本&#xff1a;5.6.4 文档用途 TEMPORARY TABLE和UNLOGGED TABLE 如何正确使用 详细信息 一.TEMPORARY|TEMP TABLE 会话级或事务级的临时表&#xff0c;临时表在会话结束或事…...

wordpress文章编辑函数/企业营销策略分析论文

Qt布局管理(3)&#xff1a;内容边距(ContentsMargins)、间距(spacing)和QSpacerItem类 本文为原创文章&#xff0c;转载请注明出处&#xff0c;或注明转载自“黄邦勇帅(原名&#xff1a;黄勇) 本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址&#xff1a; https://p…...

湘潭公司做网站/免费推广的平台

throw new RuntimeException(“…..”); 抛出运行时异常&#xff0c;方法上就不需要加throw Exception。而且直接终止程序。 public static void main(String[] args) {int i3,j0;try {int s i/j;System.out.println(s);}catch (Exception e){e.printStackTrace();throw new…...

手机评测网站/优化清理大师

【ffmpeg.exe可执行文件获取】&#xff1a; 网上搜索后得到编译好的ffmpeg文件&#xff0c;下载地址&#xff1a;http://download.csdn.net/source/453719 【安装】: 将下载的文件解压&#xff0c;如&#xff1a;D:\ffmpeg&#xff0c;一共三个文件&#xff0c;分别是&#xff…...

三网合一网站建设是指什么/国外友链买卖平台

作者&#xff1a;Tiny熊来源&#xff1a;区块链兄弟原文链接&#xff1a;http://t.cn/ELoD2h2本文约1700字&#xff0c;阅读(观看)需要10分钟著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。这篇文章对fabric的网络环境启动过程进行讲解,也就…...