CTF&密码学与社会工程
了解密码学和社会工程攻击和网络情报,以及夺旗。
1,133个主题在此版块
-
- 0 篇回复
- 87 次查看
1.1 语言介绍 Go 语言由谷歌(Google)公司于 2009 年正式对外发布,设计 Go 语言的初衷都是为了满足 Google 公司的需求。主要目标是“兼具 Python 等动态语言的开发速度和 C/C++等编译型语言的性能与安全性”,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、执行性能好”等优势。最主要还是为了并发而生,并发是基于goroutine的,goroutine类似于线程,但并非线程,可以将goroutine理解为一种轻量级线程。Go 语言运行时会参与调度goroutine,并将goroutine合理地分配到每个 CPU 中,最大限度地使用 CPU 性能。 1.2 作者介绍 从左到右分别是 : 罗伯特·格瑞史莫(Robert Griesemer): 曾为谷歌的 V8 JavaScript 引擎和 Chubby 开发代码 罗勃·派克(Rob Pike): 罗布·派克是 Unix 的先驱,是贝尔实验室最早和 Ken Thompson 以及 Dennis M. Ritche 开发 Unix 的猛人,UTF-8 的设计人。还是 1980 年奥运会射箭的银牌得主。 汤普逊(Ken Thompson): Ken Thompson 图灵奖得主,C 语言前身 B 语言的作者,Unix 的发明人之一, 操作系统 Plan 9 的主要作者。 共同开发了 UTF-8。 1.3 Go 语言特点 Go 语言,作为编程语言的后生,站在巨人的肩膀上,吸收了其他一些编程语言的特点。下面简单解释一…
HACK1949的最后回复, -
- 0 篇回复
- 82 次查看
一、什么是python Python就是一门解释型的编程语言,而且是现在世界上最流行的编程语言之一。 二、Python发展背景 Python的作者,Guido von Rossum(吉多·范·罗苏姆),荷兰人。1982年,吉多从阿姆斯特丹大学获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,虽然拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的事情。 在那个时候,吉多接触并使用过诸如Pascal、C、Fortran等语言。这些语言的基本设计原则是让机器能更快运行。在80年代,虽然IBM和苹果已经掀起了个人电脑浪潮,但这些个人电脑的配置很低。比如早期的Macintosh,只有8MHz的CPU主频和128KB的RAM,一个大的数组就能占满内存。所有的编译器的核心是做优化,以便让程序能够运行。为了增进效率,语言也迫使程序员像计算机一样思考,以便能写出更符合机器口味的程序。在那个时代,程序员恨不得用手榨取计算机每一寸的能力。有人甚至认为C语言的指针是在浪费内存。至于动态类型,内存自动管理,面向对象…… 别想了,那会让你的电脑陷入瘫痪。 这种编程方式让吉多感到苦恼。吉多知道如何用C语言写出一个功能,但整个编写过程需要耗费大量的时间,即使他已经准确的知道了如何实现。他的另一个选择是shell。Bourne Shell作为UNIX系统的解释器已经长期存在。UNIX的管理员们常常用shell去写一些简单的脚本,以进行一些系统维护的工作,比如定期备份、文件系统…
HACK1949的最后回复, -
- 0 篇回复
- 85 次查看
1.hashlib的简介 hashlib 是一个提供了一些流行的hash(摘要)算法的Python标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512等 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。更多请看:hashlib — 安全哈希与消息摘要 2.hashlib的使用 本文以hashlib中MD5算法为例,其他的sha224、sha256算法用法和MD5基本一致。 2.1 常用属性 hashlib.algorithms #列出所有加密算法 h.digest_size #产生的散列字节大小。 h.block_size #哈希内部块的大小 2.2 常用方法 hash.new([arg]) # 创建指定加密模式的hash对象 hash.update(arg) # 更新哈希对象以字符串参数。如果同一个hash对象重复调用该方法,m.update(a); m.update(b) 等价于 m.update(a+b) hash.digest() # 返回摘要,作为二进制数据字符串值。 hash.hexdigest() # 返回摘要,作为十六进制数据字符串值 hash.copy() # 复制 2.3 使用示例 # MD5 的使用 #其它的sha1,sha256就是加密函数不一样,其余基本相同,这里就不演示了 import hashlib…
HACK1949的最后回复, -
- 0 篇回复
- 76 次查看
模块 三种方法: import from 模块 import 成员,成员 from 模块 import * *代表所有的成员 隐藏成员: 模块中以下划线_开头的属性 隐藏成员不会被from 模块 import * 导入 导入模块时会将模块的代码全部执行 as 取别名 from module01 import f as f1 模块变量 __file__ : 模块对应的文件路径名,返回的是一个绝对路径 绝对路径:从盘符开始一层一层 __name__ : 模块自身的名字 如果在当前模块运行,则名字为__main__,否则为模块真名 # 只需要一次模块当作程序运行的代码 if __name__ = '__main__' print("主模块 ") 模块分类 内置模块 : builtins.py 用户自己编写的模块 标准库 第三方模块 第三方模块开源: pip install 模块名 pip install 模块名 -i 源地址 PIP国内源: 1)清化大学 PIP源地址:https://pypi.tuna.tsinghua.edu.cn/simple 2)阿里云 PIP源地址:http://mirrors.aliyun.com/pypi/simple/ 3)豆瓣 PIP源地址:http://pypi.douban.com/simple/ 4)中国科学技术大…
HACK1949的最后回复, -
- 0 篇回复
- 93 次查看
#!/usr/bin/env python # -*- coding:utf-8 –*- import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.header import Header class Mail(object): def __init__(self, host, nickname, username, password, postfix): self.host = host # 邮箱地址 mail.163.com self.nickname = nickname # 邮件标题 self.username = username # 邮箱名 self.password = password # 邮箱密码/授权码 self.postfix = postfix # 邮箱后缀 def send_mail(self, to_list, subject, content, cc_list=[], encode='gbk', is_html=True, images=[]): me = str(Header(self.nickname, encode)) +…
HACK1949的最后回复, -
- 0 篇回复
- 81 次查看
今日学习内容 一、项目开发流程 BBS:多人博客系统 需要用到 django,mysql 传统软件行业:给第三方做解决方案 互联网行业:饿了么,叮咚买菜... 软件开发流程: 项目立项(高层,市场人员(市场调研),跟客户对接) 项目设计(产品经理:设计软件功能,设计原型图) 项目的具体设计(UI:切图) 分任务开发 前端:pc,小程序,移动端(分任务开发) 后端:架构,数据库设计(设计表,表关联) 多人系统开发 联调,就是前后端整合一下。 测试:功能测试,自动化测试,接口测试 上线运行:运维 出现bug,项目维护阶段 版本迭代 二、bbs项目表设计及关联 1.bbs开发的功能 注册功能 登录功能 首页:文章展示,导航栏,用户中心,广告位 个人主页:文章展示,侧边栏过滤(分类,标签,时间) 文章详情:点赞点踩,评论(父评论,子评论) 后台管理:个人文章展示(增加,删除,修改文章) 发布文章:富文本编译器,xss攻击处理 针对技术选择的版本:python3.8 django2.2.2 mysql5.7 jquery2.x bootsrap@3 2.设计数据库 数据库名字 bbs 用户表(基于auth的user表扩写,扩写字段) 博客表(跟用户表一对一) 标签表 分类表 文章表 点赞点踩表 评论表 3.表的关联表 用户表(基于auth的user表的扩写,扩写字段) 博客表------------------用户表(一对一) 标签表---------…
HACK1949的最后回复, -
- 0 篇回复
- 77 次查看
面向对象 面向对象( 0bject 0riented )是软件开发方法,是一种程序设计规范,是一种对现实世界理解和抽象的方法。在面向对象编程思想中,一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象。 总的来说面向对象编程,一是属性,二是方法。 面向对象术语 1.类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例 2.方法:类中定义的函数 3.类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体(方法)之外。类变皇通常不作为实例变量使用,类变量也称作属性 4.数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据 5.方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写 6.实例变量:定义在_init__方法中的变量,只作用于当前实例的类 7.继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待,以普通的类为基础建立专门的类对象 8.实例化:创建一个类的实例,类的具体对象。一个类可以实例化出无数个对象 9.对象:通过类定义的数据结构实例。 实例演示 1、定义一个Rectangle矩形类 (1)两个名为width和height的数据域,它们分别表示矩形的宽和高。width和height的默认值都为1。 (2…
HACK1949的最后回复, -
- 0 篇回复
- 79 次查看
常用来转换数值类型 int(x='0',base=10),用数字或字符串转换为整数,如果不给出参数,则返回0.将X按照base的进制转换为对应的整数。 base是指进制数。 float(obj),用字符串或数字转换为浮点数 bool(x),用X创建一个bool值 complex(),用数字创建一个复数。 注意:浮点型数据和整型数据混合运算后悔存在精度问题,如:
HACK1949的最后回复, -
- 0 篇回复
- 83 次查看
变量与赋值语句 简单赋值用于为一个变量赋值。 序列赋值可以一次性为多个变量赋值。 多目标赋值指用连续的多个等号将同一个数据赋值给多个变量。 增强赋值指将运算符与赋值相结合的赋值语句 # 简单赋值 num = 100 # 100 # 序列赋值 x, y = 1, 2 # 1, 2 (x2, y2) = 10, 20 # 10, 20 [x3, y3] = 'ab' # a, b ((x4, y4), z4) = 'ab', 'cd' # a, b, cd x5, *y5 = 'abcd' # a, ['b', 'c', 'd'] *x6, y6 = [1, 2, 3, 'abc'] # [1, 2, 3], abc # 多目标赋值 a = b = c = 10 # 将10 分别赋值给变量 a、b、c # 增强赋值 i = 10 i += 10 # 20 程序结构 通常,程序结构分为3种:顺序结构、分支结构和循环结构。 程序中的语句按照先后顺序依次执行各条语句,程序默认为顺序结构 Python使用if语句实现程序的分支结构;Python还有一种特殊的三元表达式语法:表达式1 if 条件表达式 else 表达式2 Python使用for语句和while语句实现循环结构;循环中还可以使用break、continue和pass来完成循环控制 例题: 编程实现任何一个列表中的每个数字进行奇偶数分类,用for循环和while循环分别定义一个函数实现。 并随机…
HACK1949的最后回复, -
- 0 篇回复
- 119 次查看
实验1:SDN拓扑实践 实验目的 1. 能够使用源码安装Mininet; 2. 能够使用Mininet的可视化工具生成拓扑; 3. 能够使用Mininet的命令行生成特定拓扑; 4. 能够使用Mininet交互界面管理SDN拓扑; 5. 能够使用Python脚本构建SDN拓扑。 实验环境 Ubuntu 22.04.01 LTS Desktop amd64 实验要求 基本要求 1.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。 运行结果截图 2.使用Mininet的命令行生成如下拓扑: a)3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。 运行结果截图 b) 3台主机,每个主机都连接到同1台交换机上。 运行结果截图 3.在2 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。 运行结果截图 4.编辑基本要求第1步保存的Python脚本,添加如下网络性能限制,生成拓扑: a) h1的cpu最高不超过50%; b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。 采用命令行方式 运行结果截图 进阶要求 编写Python脚本,生成如下数据中心网络拓扑,要求: 编写.py拓扑文件,命名为“学号_fattree.py”; 必须通过Mininet的custom参数载入上述文件,不得直接使用miniedit.py生成的.py文件; 设备名称必须和下…
HACK1949的最后回复, -
- 0 篇回复
- 82 次查看
实例01 根据身高、体重计算BMI指数,代码如下: height =float(input("请输入你的身高:")) weight =float(input("请输入你的体重:")) bmi =weight/(height*height) #判断身材是否合理 if bmi<18.5: print("您的BMI指数为:"+str(bmi)) print("体重过轻~@_@~") if bmi>=18.5 and bmi<24.9: print("您的BMI指数为:"+str(bmi)) print("正常范围,注意保持(-_-)") if bmi>=24.9 and bmi<29.9: print("您的BMI指数为:"+str(bmi)) print("体重过重~@_@~") if bmi>=29.9: print("您的BMI指数为:"+str(bmi)) print("肥胖^@_@^") 运行结果如下: 请输入你的身高:1.7 请输入你的体重:48.5 您的BMI指数为:16.782006920415228 体重过轻~@_@~ 实例02 输出007号坦克,代码如下: print(''' ▶ 学编程,你不是一个人在奋斗 ▏ …
HACK1949的最后回复, -
- 0 篇回复
- 80 次查看
实例01 code01: height = 1.70 print("您的身高:"+str(height)) weight = 48.5 print("您的体重:"+str(weight)) bmi=weight/(height*height) print("您的BMI指数为:"+str(bmi)) #判断身材是否合理 if bmi<18.5: print("您的体重过轻 ~@_@~") if bmi>=18.5 and bmi<=24.9: print("正常范围,请继续保持 (-_-)") if bmi>=24.9: print("您的体重过重~@_@~") if bmi>=29.9: print("肥胖^@_@^") 实例02 code02: print(""" ▲ 学编程,你不是一个人在战斗~~ | __\-- __|_ ||=======OOOOO[/ ★007___| _____\_______|/-----. /___mingrisoft.com \⭕⭕⭕⭕⭕⭕⭕⭕| …
HACK1949的最后回复, -
- 0 篇回复
- 82 次查看
height=1.7 #保存的身高的变量, 单位:米 print("您的身高:" + str(height)) weight = 100 print("您的体重:" + str(weight)) #保存的体重的变量,单位:kg bmi=weight/(height**2) #用于计算BMI指数,公式:BMI=体重/身高的平方 print("您的BMI指数为:" + str(bmi)) #输出BMI指数 #判断身材是否合理 if bmi<18.5: print("细狗~@_@~") if bmi>=18.5 and bmi<24.9: print("普普通通,没得说(^_^)") if bmi>=24.9 and bmi<29.9: print("肌肉重装战士~@_@~") if bmi>=29.9: print("亚雷码,肉改重装坦克! ~#^_^#~") money_all = 56.75 + 72.91 + 88.50 + 26.37 + 68.51 #累加总计金额 money_all_str = str(money_all) #转换为字符串 print("商品总金额为:" + money_all_str) money_real = int(money_all) …
HACK1949的最后回复, -
- 0 篇回复
- 88 次查看
方法汇总 详细说明
HACK1949的最后回复, -
- 0 篇回复
- 82 次查看
新手小白学习Python的周,学会了基本的语法,本人因为比较喜欢编程,但是英语不好,所以选择了傻瓜式的手抄本代码的笔记方式,我在线上报名了某机构的爬虫课程,因为我有不会的地方还有线上老师可以教学,为了少走弯路,所以没有省这一比钱,这一周最大成就,就是自己写了一个用户管理列表版本,还算成功吧.各位大佬轻点喷.
HACK1949的最后回复, -
- 0 篇回复
- 78 次查看
工作中有这样的需求,快速获取多个仓库中的 commit 记录。通过学习,使用 httpx 这个支持异步的请求库和 asyncio 异步编程库并发地运行协程任务。 代码如下: import asyncio import httpx import time headers = {'Content-Type':'application/json','charset':'UTF-8'} url = 'https://gitee.com/api/v5/repos/src-anolis-os/systemd/commits?page=1&per_page=5' async def main(url): async with httpx.AsyncClient() as client: res = await client.get(url,headers = headers) # print([res.json()[0]['commit']['message']]) try: loop = asyncio.get_event_loop() start = time.time() tasks = [ loop.create_task(main(url)) for i in range(10) ] loop.run_until_complete(asyncio.wait(tasks)) print('spent %.2fs'%(time…
HACK1949的最后回复, -
1、python中,多条语句写在一行,需要用分号(;)隔开,一般一条语句写在一行内,复合语句除外 如:a=100;b=200 或a = 100 b = 200 说明:python中对语句的解释是以行为单位的。 2、折行符\(反斜杠) 是告诉机器,下一行的内容也是此语句的内容。折行符后面,不能写任何东西。 3、隐式换行 所有的括号的内容换行时,解释执行器会自动去下一行找到相对应的括号,直到找到为止,称作隐式换行。 4、基本输入输出函数 输入函数 input 作用:从标准输入设备上读取一个字符串(注:末尾的换行字符会被删除) 格式:input('提示字符串') 注:返回一个字符串,提示字符串可以为空。参与计算的时候,要做相应的转换 输出函数 print() 作用:将一系列的值,以字符的形式输出到标准设备上,默认为终端。 格式:print(value,...,sep='',end='\n') 关键字参数说明: sep:两个值之间的间隔符,默认为一个空格‘ ’ end:输出完毕后在流末尾自动追加一个字符串,默认为换行符'\n' 练习1: 练习2:
HACK1949的最后回复, -
- 0 篇回复
- 79 次查看
一·根据身高,体重计算BMI指数 height=1.70 print("您的身高:"+str(height)) weight=48.5 print("您的体重:"+str(weight)) bmi=weight/(height*height) print("您的BMI指数为:"+str(bmi)) if bmi<18.5: print("您的体重过轻:") if bmi>18.5 and bmi<24.9: print("正常范围,注意保存:") if bmi>24.9 and bmi<29.9: print("您的体重过重:") if bmi>=29.9: print("肥胖:") print(''' 学编程,你不是一个人在战斗~~ | __\--__|_ II=======00000[/★007___| _______\_____|/-----. /___mingrisoft.com___| \◎◎◎◎◎◎◎◎◎⊙/ ~~~~~~~~~~~~~~~~~~ ''') …
HACK1949的最后回复, -
- 0 篇回复
- 95 次查看
001、系统 root@ubuntu01:/home# hostnamectl Static hostname: ubuntu01 Icon name: computer-vm Chassis: vm Machine ID: e6fb52b4c8414f29b06dc95d57b5846c Boot ID: 4ffb5c0e628241fe84425ca626565e00 Virtualization: vmware Operating System: Ubuntu 22.04.1 LTS Kernel: Linux 5.15.0-47-generic Architecture: x86-64 002、查看系统已安装的python版本 root@ubuntu01:/home# ls /usr/bin/python* ## 默认安装了python3 /usr/bin/python3 /usr/bin/python3-futurize /usr/bin/python3.10 /usr/bin/python3-pasteurize 003、调用python2测试 root@ubuntu01:/home# python2 Command 'python2' not found, but can be installed with: apt install python2 …
HACK1949的最后回复, -
- 0 篇回复
- 75 次查看
1.根据身高、体重计算BIM指数 运行结果 2.输出07号坦克 运行结果 3.模拟超市抹零结账行为 运行结果 4.计算学生成绩分差及平均数 运行结果 5.使用比较运算符比较大小关系 运行结果 6.参加手机店打折活动 运行结果
HACK1949的最后回复,