CTF&密码学与社会工程
了解密码学和社会工程攻击和网络情报,以及夺旗。
1,135个主题在此版面
-
1. 在python中凡是实现了iter()的类都是可迭代对象,可以通过iteration对其进行迭代 2. 从抽象的角度来讲,可迭代对象会维护两个指针,一个是初始指针,一个是游标指针 初始指针不可修改,使用iter()得到的一直是游标指针 游标指针在某些操作,比如next(iter())的情况下不会增加,也就是说next本身并不是增加游标指针,但是加个print()的话可以 比如print(next(x))会增加x这个游标指针的数值 iter(e)本身也会增加?太麻烦了等会儿再思考好了
-
- 0 篇回复
- 135 次查看
-
-
class App: num = 5 def add(self): return self.num + self.num if __name__ == "__main__": main = App() result = main.add() print(result) class App: num = 5 def add(self): return App.num + App.num if __name__ == "__main__": main = App() result = main.add() print(result) 在使用python中的类对象时,当我们在App类下定义了一个变量num时,此时的num变量可以通过self.num或者App.num来进行引用,当使用self.num来进行引用时,可以等同于提前对num进行初始化,代码如下: class App: def __init__(self): self.num = 5 def add(self): return self.num + self.num if __name__ == "__main__": main = App() result = main.add() print(result) 注意此时add函数中的返回值…
-
- 0 篇回复
- 150 次查看
-
-
实验1:SDN拓扑实践 1.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。 2.使用Mininet的命令行生成如下拓扑: a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。 b) 3台主机,每个主机都连接到同1台交换机上。 a) b) 3.在2 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。 4.编辑(一)中第1步保存的Python脚本,添加如下网络性能限制,生成拓扑: a) h1的cpu最高不超过50%; b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。 5.编写Python脚本,生成如下数据中心网络拓扑,要求:编写.py拓扑文件,命名为“学号_fattree.py”;必须通过Mininet的custom参数载入上述文件,不得直接使用miniedit.py生成的.py文件;设备名称必须和下图一致 使用Python的循环功能实现,不得在代码中手工直接添加设备和链路。 心得体会 本次学习中,我更加熟悉了linux的操作,学到了不少关于mininet的指令,列如'sudo mn –-topo=single,3',来生产一个简单拓扑,'addHost()',来添加一个主机,并通过各种指令进行连接。,个人觉得这次实验的难度没有上次配环境来得困难,可能是因为老师给的教程更加详细了,但是两者都是在培养我自己解决问题的能力,当遇到错误时,我的第一反应不再是求助他人,而是上网查询问题的答案,…
-
- 0 篇回复
- 153 次查看
-
-
编程一年后我学到了什么? Photo by 希特什·乔杜里 on 不飞溅 编程/编码 ,当人们听到这些话时,大多数时候他们将这些事情作为一个具有挑战性的领域来选择。他们认为这些东西是为了 ** 高智商** 人或计算机书呆子。这是现实。如果一个人真的对这个领域感兴趣,甚至想探索它,他们可以这样做。这个领域本身就包含了丰富的知识。如果有人想学习,它有很多东西可以付出。 距离我开始编程之旅已经快一年了。不会撒谎,这是某种过山车。在尝试新事物时总会遇到一些挑战。编程对于初学者有自己的一套问题。 我从以下基础开始了我的旅程 ** HTML 和 CSS** . HTML(超文本标记语言)是一种用于描述网页结构的语言。 CSS(层叠样式表)是一种用于对使用 HTML 创建的网页进行样式设置的语言。学习这些语言真的很有洞察力和乐趣。我什至创建了很多有趣的项目来提高我的技能。 建立自己的东西的愿望导致我选择 ** 网站开发** 作为我的研究领域。学习 Web 开发需要编程语言。 ** Python** 是最常用和对初学者友好的编程语言,所以我不必多想,我自学了python。 Python,多么有趣的语言,它有很多东西可以提供,我试图尽可能多地掌握。 该课程提供了很多探索各种领域的机会,包括 Web 开发、机器学习和面向对象编程 .我对 Web 开发的兴趣使我开始了我的 Web 开发之旅,使用 ** 姜戈** ,一个漂亮的 Python 框架。 学习 Django 教会了我很多东西。我了解了一个名为 ** SQLite** .我什至不…
-
- 0 篇回复
- 156 次查看
-
-
一.基础要求 a.Mininet运行结果截图 b.2的执行结果截图 c.3修改过的“学号.py”代码、Mininet运行结果 二.进阶要求 三.个人总结 这次实验主要内容是用不同的方法建立拓扑网络,就难度而言,最简单的还是通过可视化工具进行创建和操作,而使用Python脚本构建拓扑则有着更大的难度,同时也因为我对于Python还不太熟练,因此在进阶要求的代码部分主要是在参考资料的基础上进行修改,但是在修改代码的过程中,我也巩固了Python的语法,学到了新的用法,明白了Python脚本构建拓扑的一些简单方法。就我个人而言,这次的实验跟着流程走,想要完成难度不大,但是距离吃透构建和对拓扑进行操作的原理、知识,还有很长的一段路要走,因此在实验的过程中我也十分注意新出现的代码等新东西,尽量弄懂这些代码的作用和用法,提升自己。总而言之,这次实验让我获益良多,也让我知道了自己的不足和需要提升的方向。
-
- 0 篇回复
- 144 次查看
-
-
在 Python 的 Seaborn 库中可视化折线图 卢卡斯摄 让我们讨论在 Seaborn 中创建折线图的不同可视化技术。 Seaborn 是 Python 中最流行的可视化工具之一。 它受欢迎的主要原因是在一行代码中创建复杂图表的简单性。 当我们在 python 中谈论折线图时,有很多方法可以创建一个简单的折线图。在 seaborn 中,我们有一个名为 line plot 的快速函数。 第一步是在我们当前的环境中安装 seaborn。 如果您使用的是 Anaconda,您可以使用以下命令(在 anaconda.org 中提到): conda install -c anaconda seaborn 否则,下一个选项是使用 pypi.org 中提到的命令,即 点安装seaborn 安装完成后,下一步是使用以下命令导入seaborn库: 将 seaborn 导入为 sns 这里,“sns”是简写,也称为seaborn的别名,即,只要我们在代码中看到“sns”,就可以推断出我们正在使用seaborn库。 要查看一些图,让我们在我们的环境中加载一些数据。 我们将使用 Seaborn 库的内置数据集。最初,我们不知道哪些数据集已经可供我们使用。 要获取数据集名称列表,我们可以使用 seaborn 的 .get_dataset_names() 方法。 Image by Author 上面的命令为我们提供了可用于分析的 22 个数据集的列表。 让我们选择道琼斯数据集并创建一个线图。 我们使用“load…
-
- 0 篇回复
- 149 次查看
-
-
实验1:SDN拓扑实践 实验1:SDN拓扑实践 1.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。 2.使用Mininet的命令行生成如下拓扑: a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。 b) 3台主机,每个主机都连接到同1台交换机上。 a) b) 3.在2 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。 4.编辑(一)中第1步保存的Python脚本,添加如下网络性能限制,生成拓扑: a) h1的cpu最高不超过50%; b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。 5.编写Python脚本,生成如下数据中心网络拓扑,要求:编写.py拓扑文件,命名为“学号_fattree.py”;必须通过Mininet的custom参数载入上述文件,不得直接使用miniedit.py生成的.py文件;设备名称必须和下图一致 使用Python的循环功能实现,不得在代码中手工直接添加设备和链路。 心得体会 初次接触mininet,很多操作都不熟练,所以在完成过程中新学了很多前置知识,收获了很多。同时也发现py版本不一致和windows、虚拟机复制会出现的小问题并找到方法加以解决,这也培养了我发现问题、解决问题的能力,受益匪浅。我一般是通过各搜索引擎寻找解决难度,如果找不到相关问题再去对应官方文档查看当前使用版本对应api使用方法、查看是否自己使用方式不对,在比对和学习中解决问题。实…
-
- 0 篇回复
- 151 次查看
-
-
1.Django中的相应对象 构造函数格式: HttpResponse(content=响应体,content_type=响应体数据类型,status=状态码) 作用: 向客户端浏览器返回相应,同时携带响应体内容。 参数: --content:表示返回的内容。 --status_code:返回的HTTP响应状态码(默认为200)。 --content_type:指定返回数据的MIME类型(默认为“text/html”)。浏览器会根据这个属性,来显示数据。如果是text/html,那么就会解析这个字符串,如果是text/plain,那么就会显示一个纯文本。 响应头中常见的Content-Type: -- text/html :默认的,html文件 --text/plain:纯文本 --text/css:css文件 --text/javascript:js文件 --multipart/form-data:文件提交 --application/json:json传输 --application/xml:xml文件 2.GET处理 request.GET['参数名'] ##QueryDict request.GET.get('参数名','默认值') request.GET.getlist('参数名') 3.模板 (1)模板是可以根据字典数据动态变化的html网页。 (2)模板可以根据视图中传递的字典数据动态生成相应的HTML网页。 (3)创建模板文件夹,一般位于<项目名>/template…
-
- 0 篇回复
- 146 次查看
-
-
#直接写在类里的变量,称为类属性 #类种的函数叫方法,同时必须 有self #静态方法@staticmethod, 静态方法中函数没有self #类方法@classmethod ,类方法必须同时拥有cls class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写 native_pace='吉林' #直接写在类里的变量,称为类属性 def __init__(self,name,age): #init 初始化方法 self.name=name #self.name 称为实体属性 ,进行了 一个赋值的操作,将局部变量的name的值赋给实体属性 self.age=age #实例方法 def eat(self): print('学生在吃饭...') #静态方法 @staticmethod def method(): print('我使用了statticmethod进行修饰,所以我是静态方法') #类方法 @classmethod def cm(cls): print('我是类方法,因为我使用了classmethod进行修饰') #在类之外定义的称为函数,在类之内定义的称为方法 def drink(): print('喝水')
-
- 0 篇回复
- 146 次查看
-
-
前言 当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。 搜索路径存放在sys模块的path中。【即默认搜索路径可以通过sys.path打印查看】 sys.path.append() sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径。 当我们要添加自己的引用模块搜索目录时,可以通过列表 list 的 append()方法; sys.path.append() 对于需要引用的模块和需要执行的脚本文件不在同一个目录时,可以按照如下形式来添加路径: 【例如: ①导入的XX包在另一个项目文件中,在自己写的程序中需要用到XX包。 ②所以我们在运行自己写的程序时,首先加载导入的XX包,加载的时候python解释器会去sys.path默认搜索路径去搜索。 ③如果通过sys.path中的路径可以搜索到XX包,然后加载。 ④如果无法通过sys.path中的路径搜索到XX包,即说明自己的程序中引用的XX包,与自己程序脚本所在目录不在同一个路径。(无法在自己的程序脚本中根据默认搜索路径查找到XX包) ⑤然后我们就需要将XX包的搜索路径添加到自己程序脚本的默认搜索路径中,重新运行自己的程序脚本,先搜索XX包在家载XX包。 】 import sys sys.path.append(’需要引用模块的地址') # sys.path.append("..") # 这代表添加当前路径的上一级目录 【注意】:这种方法是运行时修改…
-
- 0 篇回复
- 155 次查看
-
-
1、file》setting找到 2、填入参数 ①program中的路径是你的pyuic5.exe 的安装目录 ②arguments中填入 $FileName$ -o $FileNameWithoutExtension$.py 这段代码可以让你自动将你的.ui文件转换为.py文件(不用手动设置.py的文件名) ③working directory中填入$FileDir$。 3、使用 右键ui文件选择最下面的external tool 即可。 参考: https://www.w3xue.com/exp/article/20226/79577.html#_label1
-
- 0 篇回复
- 162 次查看
-
-
本文参考: Python计数器collections.Counter用法详解 collections--容器数据类型 ================================================= python的内置模块collections,实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。 打钩的三个是比较常用的函数。本文主要讲Counter()。 from collections import Counter # 对列表作用 ========================================= a = [0,1,2,2,4,4,1] tmp = Counter(a) print(type(tmp)) # 输出 <class 'collections.Counter'> 这里的变量tmp有较多的属性,包括: 这些属性可以让我们像用字典一样使用Counter类: from collections import Counter # 对列表作用 ========================================= a = [0,1,2,2,4,4,1] tmp = Counter(a) print(type(tmp)) # 输出 <class 'collections.Counter'> print(tmp.keys()) …
-
- 0 篇回复
- 179 次查看
-
-
在 Windows 下使用 Linux 进行数据科学项目:WSL 安装指南。 作为数据科学家或软件开发人员, Python 通常是不可避免的。而发挥 Python 全部潜力的最佳方式是使用 Linux 也是。 此外,如果您在软件公司工作或从事自己的 IT 项目, Linux 几乎总是强制性的: 项目环境传统上是用它构建的, 很多 Python 库只能在 Linux 下使用,例如 Trax(谷歌开发的深度学习库) 文件和路径管理更容易…… 但是,如果你有一台 Windows 计算机,你能做什么?如何在不放弃 Windows 的情况下安装 Linux? 有一个简单的解决方案叫做 WSL(Linux 的 Windows 子系统)! 在本文中,我将详细解释设置环境的所有步骤: 使能够 WSL 并运行 Linux **** 在你的系统下, 设置你的 Python 环境 迷你康达, 设置您的 IDE(Pycharm 或 VSCode)以在 Linux 系统下进行编码。 您准备好扩展您的编程技能了吗?所以跟我来! Photo by 米哈尔·姆罗泽克 on 不飞溅 什么是 WSL? WSL , 为了 适用于 Linux 的 Windows 子系统 ,顾名思义,允许您在 Windows 系统下使用 Linux。一个新版本, WSL2 ,现已出炉。但是,我将重点放在 WSL 因为它就像一个魅力,并且报告了一些关于新版本的问题。 WSL 和虚拟机有什么区别? 不同之处在于 WSL 已集成到您的文件系统中,与虚拟机相反,它允许您轻松管理…
-
- 0 篇回复
- 151 次查看
-
-
实验报告 课程名称: Python语言 实训项目: 《Python基础程序设计实验》 实训班级: 21信息与计算科学一班 学生姓名: 曾俊杰 学生学号: 2021310143039 指导教师: 吴世枫 数学与系统科学 学院 实验室 二〇二二 年 九 月 十二 日 广东技术师范大学实验报告 学院: 数学与系统科学学院 专业: 信息与计算科学 班级: 21信息与计算科学一班 成绩: 姓名: 曾俊杰 学号: 2021310143039 组别: 组员: 实验地点: 实验日期: 2022.9.3 指导教师签名: 预习情况 操作情况 考勤情况 数据处理情况 实验 项目名称: 《Python基础程序设计实验》 【实验目的】 1.熟悉在线编程平台。 2.掌握基本的 python 程序编写、编译与运行程序的方法。 …
-
- 0 篇回复
- 146 次查看
-
-
10 个编程问题,每个 Python 程序员都应该知道 编程语言每天都在发展,给程序员带来了便利。其中之一是 Python,最近的一项开发人员调查显示,Python 是继 JavaScript 之后第二受欢迎的编程语言。这是因为如果程序员选择 Python 作为他们喜欢的语言,他们可以获得很好的职业选择。此外,Python 语法比 C 或 C++ 更容易记住。在过去的几个月里,对 Python 开发人员的需求日益增加。 如果你是一名 Python 程序员或试图掌握它,这个博客特别适合你。在这里,我将列出一些可以帮助程序员轻松解决日常问题的要点。 现在让我们看看程序员可能面临的问题: 1.找到频率最高的元素 在这里,我们将有一个包含随机元素的列表。一些元素会重复,我们需要找到频率最高的元素。 新列表 **=** [a,b,a,d,e,g,g,a,c,f,k,t,u,z,x,a] **打印** ("最频繁的元素:", max(set(new_list),key= new_list.count)) 这里的输出将是元素“a”,因为它重复了 4 次。 2. 从字符串列表中查找子字符串。 在下面的代码中,我们有一个字符串列表,我们将使用它们拥有的一个小关键字来搜索它们。就像在方法 1 中搜索 Meta 时,我们在输出中找到了 Mark Zuckerberg,因为它们都是一个字符串的一部分。 meta 只是一个子字符串。在方法 2 中也是如此,但风格不同。 数据 **=** ["Python, 编程语言","Meta, …
-
- 0 篇回复
- 147 次查看
-
-
Python 中的正则表达式:反斜杠的介绍和使用 那么,什么是正则表达式或正则表达式? 可以说,您已经整理了电子邮件地址的编写方式,并且您有一个包含数千个电子邮件地址的列表,这些地址可能有效也可能无效。因此,要检查所有这些电子邮件地址的有效性,而不是一个一个地检查它们,如果有一定的 图案 这可以验证该电子邮件地址的有效性。正则表达式是一种编码这种模式的方法。 一个正则表达式 是一种特殊的字符序列,有助于在不同类型的数据上匹配字符串或字符串集或特定模式。正则表达式用于搜索引擎、文字处理器和文本编辑器的搜索和替换对话框、模式匹配、网络抓取、数据提取等等。 在 Python 中使用正则表达式 在 python 中,正则表达式模块可以通过导入模块来使用: 编译正则表达式 正则表达式需要编译成Pattern对象,以便进一步实现搜索等各种操作。 模式匹配 ,或执行字符串替换。 re.compile(模式,标志) 在输出中,我们可以看到该模式有一个标志为 re.UNICODE 这是一个默认标签。它表明传递的文本或模式被视为 UNICODE。与 ASCII 相比,UNICODE 支持大量字符。还有许多其他标志可用于各种功能。例如,re.I ( 或忽略大小写 ) 标志可用于忽略正则表达式模式中的字母大小写。 在这里,因为我们使用了标志 re.I ,我们已指示程序 忽视 这 信箱 .因此该模式将匹配所有字母大小写。 表演比赛 由于我们已经创建了一个模式对象,可以对其进行各种匹配操作。用于执行匹配的不同方法是: 在这里,因为…
-
- 0 篇回复
- 360 次查看
-
-
有用的现代 Python 提示和技巧 在这里,我提出了我最喜欢的新提示和技巧,甚至它们帮助我以快速且非常有效的方式正确编码。 1.Helper函数中yield的使用 屈服 肯定会节省时间,甚至几行代码。 好的,让我举一个返回平方数的函数示例。现在在这里,流程是这样的: 1. 遍历所有数字。 2. 对每个数字执行平方并将其附加到新变量 3. 最后我们需要返回该列表。 def square_numbers(数字): 新号码 = [] 对于数字中的数字: squared_number = 数量*数量 new_numbers.append(squared_number) 返回 new_numbers 为了摆脱这些事情,让我在 屈服 关键词。 def square_numbers(数字): 对于数字中的数字: 产量数*数 哇!现在我们的代码看起来很简单。现在让我们看看如何 屈服 作品。 据我们所知 返回 关键字返回值并停止函数。但是, 屈服 关键字连续返回值,但不会停止函数。有了这个 屈服 我们的函数成为生成器,它返回生成器函数。 结果 = square_numbers(范围(1, 10)) 打印(结果)#<generator object square_numbers at 0x7fa02dcc9360> print(list(result)) # [1, 4, 9, 16, 25, 36, 49, 64, 81] 2. 条件检查的链式比较运算符 在我们的编…
-
- 0 篇回复
- 149 次查看
-
-
3 设置 Python 项目的技巧和窍门 在本文中,我们将介绍命令提示符的基础知识,这是每个开发人员都必须熟悉的工具。我还将解释一个常见的混淆,因为大多数初学者没有意识到他们使用的是不同版本的 Python。 接下来,我将介绍 要求.txt ,一种安装现有项目所需软件包的有效方法。最后,有一个关于 Git 的简短介绍,它将帮助您开始管理项目的版本。 1.使用命令提示符 掌握命令提示符的基础知识(对于 Mac 或 Linux 用户,它将是终端)将使我们能够在任何地方运行代码,无论您使用的是哪种 IDE 或文本编辑器。当您在未预装首选 IDE(Raspberry Pi 就是其中一种情况)的系统上测试或部署 Python 程序时,这将派上用场。 先看命令提示符 在示例中, C:\用户\tan 是您当前的工作目录。 您可以理解这种情况,就好像您正在查看一个名为 棕褐色 在文件资源管理器中 . 我经常使用的常用命令 光盘 _你的文件路径 _ - 更改命令提示符的当前工作目录 - 例子:cd C:\Users\hong\Desktop\Project1 - 提示:命令提示符中有自动完成功能,您可以在其中按下 标签 键入每个文件夹名称的前 2 或 3 个字符后键入。 光盘.. - 向上移动一级 - 对于上面的示例,您当前的工作目录是 Project1,如果您使用导航回桌面文件夹,您只需输入 光盘.. 目录 - 列出当前工作目录中包含的所有文件和子目录 提示和技巧 按向上或向下箭头键在以前的命令之间导航 按 Tab 键…
-
- 0 篇回复
- 143 次查看
-
-
1.Python 的静态语法 1.1 静动态语言的介绍 定义:如果类型检查发生在编译阶段(compile time),那么是静态类型语言(statically typed languages)中,相反的,如果类型检查发生在运行阶段(run time),那么是动态类型语言(dynamically typed languages) 类型检查:就是查看变量的类型,然后判断这个表达式是合理的,可以这么理解:编译器通常在编译(尚未运行)阶段做类型检查(java),而解释器通常在运行阶段做类型检查(python); 示例: public static void main(String[] args){ int a = "aaaa"; // 此处在ideal中会显示报错,但是在`.java`的文件中是没有提示的; System.out.println("Hello World"); } 执行编译命令的时候会提示报错, javac file.java # 编译报错,提示类型错误 Python 中不存在编译的步骤,直接按行解释运行。 a = 'aaa' # 赋值后, a 才是 str 类型。 print("Hello World") 1.1.1 静态语言 static:所有的变量类型必须被显示地声明,因为这些信息在编译阶段就被需要(java). // java int a = 1; // 定义变量必须显示声明类型 1.1.2 动态语言 Dynamic:显示声明不被要求,因为类型赋值发生在运行阶段(python). …
-
- 0 篇回复
- 155 次查看
-
-
一、类的继承 (一)、父类与子类 父类:被继承的类,子类继承父类后,会继承父类里面所有的属性(数据属性&实例属性)以及方法 子类:继承其他的类,子类继承父类后,能够继承父类里面所有的方法以及属性,当然也可以调用 实例 class Persion(object): city='xian' def __init__(self,name,age): self.name=name self.age=age def show(self): print('my name is {name},and my age is {age}'.format( name=self.name,age=self.age)) class Student(Persion): def __init__(self,name,age,score): #子类继承父类的实例属性 Persion.__init__(self,name,age) self.score=score def info(self): print('my name is {name},and my age is {age},and my score is {score},' 'and my city is {city}'.format( …
-
- 0 篇回复
- 147 次查看
-