- 博客(41)
- 收藏
- 关注
原创 编译系统实验二 语义分析
实验任务利用实验一生成的语法分析树,完成语义分析参考源码实验步骤一、符号表建立收集词法分析中识别出的所有标识进行排序、去重,赋予每个标识符唯一索引号后续使用二分查找进行符号表的检索/* symbol table crater */SNode* getAllSymbol(Node* node); // 遍历语法树void insertSymbol(char* symbol); // 插入符号到集合中void getUnqSymbol(); // 符号去重void sort
2022-04-13 16:51:05 961
原创 信息隐藏实验一 LSB隐写和RS分析实现
一、LSB隐写1. 简介隐写对象:bmp 图像,图像内容为原始像素值隐写方式:将秘密信息转换为二进制比特流,嵌入像素值的最低位中(对图像的影响最小)隐写规则:嵌入0,将对应像素值最低位置为0;嵌入1则置为1提取方式:提取像素值最低位,重新转换为对应数据编码2. 实现读取原始图像:图像头+图像内容,我们可以进行隐写的部分为内容部分void readHeader(FILE *image, UCHAR header[]) { fread(header, 1, 1078, image
2022-03-28 20:29:57 3119
原创 编译系统实验一 Part 2 语法分析和错误恢复
实验任务使用bison实现c--语法分析器完成语法分析,生成语法分析树识别语法错误,输出错误信息,完成错误恢复识别单行和多行注释,不支持嵌套注释(识别为语法错误)实现效果源码// 例1.2int main(){ float a[10][2]; int i; a[5,3] = 1.5; if(a[1][2] == 0) i = 1 else i = 0; a(x);}// 例1.3int inc(){ int i;
2022-03-25 21:27:59 3524 4
原创 编译系统实验一 Part 1 词法分析
实验任务使用flex实现c--词法分析器识别整数、浮点数、标识符识别关键字、特殊符号、括号等识别八进制、十六进制整数,指数形式的浮点数对无法识别的单元进行报错实验效果(源码未出现的样例及报错属于语法分析范畴)// 例1.1int main(){ int i = 1; int j = ~1;}\image-20220320211205869.png)]// 例1.3int inc(){ int i; i = i + 1;}
2022-03-20 21:41:21 854 1
原创 网络安全实验二 Part 2 捕包软件的实现
实验任务使用libpcap编写捕包程序利用libpcap获取本机数据包,可自定义过滤条件逐层解析数据包,获取IPv4数据包的src_ip,dst_ip,src_port,dst_port将上述四元组写入文件(每次运行生成一个新文件)效果展示 (源码)规则文件格式:行内 or 关系,行间 and 关系,该文件对应的过滤规则见上图记录文件首行运行方式:./capture [rule_file]实验步骤一、熟悉libpcap使用官方文档捕包实例过滤规则实验步骤二、
2022-03-19 22:32:20 406
原创 网络安全实验一 Part 2 Windows环境下的扫描器程序
实验任务编写端口扫描程序具有界面(使用QtCreator)具有多线程处理能力使用简单的connect确定端口是否开放即可可以提前结束扫面,安全的结束线程效果示例(源码)界面扫描局域网内开放的端口扫描百度多线程加速提前结束扫描实验步骤一、熟悉QtCreator编程C语言中文网Qt教程,按序看10~15篇Qt弹窗,QString,用于和用户交互,发出警告/提示Qt多线程,本实验要用到Qt Socket,Qt有封装好的socke
2022-03-15 00:05:06 5135
原创 网络安全实验一 Part 1 编写Linux下的C/S文件传输程序
实验任务实现一个CS模式的文件传输应用,要求客户端可以向服务器上传文件客户端可以获取服务器文件列表,并下载指定文件效果示例 (源码)实验步骤一、确定传输协议作为一个双向文件传输的C/S应用,必须规定双方交流的规则,也就是协议的语法、语义、时序协议格式:操作码(ASCII字符) + 信息其中close connection\text{close connection}close connection,opt=0opt = 0opt=0,客户
2022-03-14 22:39:20 646
原创 【第三、四次课、结构化查询语言】
SQL语言组成数据定义语言 DDL完整性视图定义数据操控语言DML事物控制嵌入式授权特点综合统一高度非过程化面向集合易学易用数据定义语言DDL约束部分Primary key <Name>foreign key() reference <Table>Unique 唯一性not null 非空建立索引指定关系的指定属性集桶索引,加快查找速度定义视图隐藏特定数据为用户量身定做说明
2022-02-28 17:40:36 295
原创 【编译系统】【第四讲、语法分析 LL(1)文法 FOLLOW集、SELECT集、FIRST集】
4.1 自顶向下分析概述(Top-Down Parsing)自顶向下分析:从文法开始符号SSS推导出词串www的过程,需要确定替换当前句型中的哪个非终结符用该非终结符的哪个候选式进行替换最左推导(Left-most Derivation):总是选择每个句型的最左非终结符进行替换逆过程:最右归约如果S⇒lm∗αS \Rightarrow^*_{lm} \alphaS⇒lm∗α,则称α\alphaα是当前文法的最左句型(left-sentential form)最右推导(Ri
2022-02-27 21:20:25 255
原创 【数据库系统】【数据库系统基础一】【2.24】
数据库系统的发展层次数据库模型:树形,一对多,插入、删除等操作复杂,查询受限网络数据库模型:结构复杂,不易用户使用,查询面向过程关系数据库系统关系:R(A1:D1,A2:D2,…,An:Dn)R(A_1:D_1, A_2:D_2, \dots, A_n:D_n)R(A1:D1,A2:D2,…,An:Dn)说明RRR:关系名AiA_iAi:属性/字段DiD_iDi:对应属性的值域理解关系是元组的集合,元组是形如(a,b,c,… )(a,b,c,\do
2022-02-24 18:34:06 504
原创 【编译系统】【第三讲、词法分析器的生成】
词法分析器生成工具lex语言:描述单词的正则定义式,及识别后的动作lex编译器:实现正则定义式RD(包含在lex源程序中),向确定有穷自动机DFA(c语言程序)的转换生成词法分析器:lex语言源程序→lex编译器c语言词法分析程序→c语言编译器词法分析器\text{lex语言源程序} \xrightarrow{lex编译器} c语言词法分析程序 \xrightarrow{c语言编译器} 词法分析器lex语言源程序lex编译器c语言词法分析程序c语言编译器词法分析器lex语言意义加快词法分析
2022-02-24 17:36:30 670
原创 【编译系统】【第三讲、词法分析】
3.1 正则表达式语言 L={a}{a,b}∗({ϵ}∪({.,}{a,b}{a,b}∗))L = \{a\}\{a,b\}^*(\{\epsilon\}\cup(\{.,_\}\{a,b\}\{a,b\}^*))L={a}{a,b}∗({ϵ}∪({.,}{a,b}{a,b}∗))正则形式 r=a(a∣b)∗(ϵ∣(.∣)(a∣b)(a∣b)∗)r = a(a|b)^*(\epsilon|(.|_)(a|b)(a|b)^*)r=a(a∣b)∗(ϵ∣(.∣)(a∣b)(a∣b)∗)定义
2022-02-24 07:24:30 229
原创 【编译系统】【第二讲、语言及文法】
2.1 基本概念字母表(Alphabet):∑\sum∑,有穷符号集字母表上的运算乘积(product):∑1∑2={ab∣a∈∑1,b∈∑2}\sum_1\sum_2 = \{ab | a \in \sum_1, b \in \sum_2\}∑1∑2={ab∣a∈∑1,b∈∑2}幂(power):∑0={ϵ},∑n=∑n−1∑,n≥1\sum^0 = \{\epsilon\}, \sum^n = \sum^{n-1} \sum, n\ge 1∑0={ϵ},∑n=∑n−1∑,n≥1正闭
2022-02-24 07:23:49 648
原创 【编译系统】【第一讲、绪论补充】【编译器自展和交叉编译】
I、编译程序的生成设有高级语言L1L_1L1,机器语言为AAA的机器,简称机器AAA,在没有其他条件的情况下只能用AAA语言编写L1L_1L1语言的编译器当已经有了L1L_1L1语言在AAA机器上的编译器P1P_1P1时,现在要为高级语言L2L_2L2编写编译器,显然不必再使用机器语言AAA来实现。使用L1L_1L1语言编写将L2L_2L2语言转换为AAA语言的编译程序P2′P_2'P2′,在经过编译器P1P_1P1,就得到了可以在AAA机器上运行的L2L_2L2语言的编译器上述
2022-02-22 20:37:57 679
原创 【编译系统】【第一讲、绪论】
1.1 什么是编译编译:将高级语言(源语言)翻译成汇编语言或机器语言(目的语言)的过程源程序 →预处理器(Preprocessor)\xrightarrow{预处理器(Preprocessor)}预处理器(Preprocessor) 经过处理的源程序 →编译器\xrightarrow{编译器}编译器 汇编语言程序 →汇编器(Assembler)\xrightarrow{汇编器(Assembler)}汇编器(Assembler) 可重定位的机器代码 →链接器(Linker)/加载器(Loader)
2022-02-21 22:14:24 842
原创 【数据库系统】【数据库系统概述】【2.21】
Part I 绪论教学内容数据库系统基础 12学时数据库系统概述markmark数据库系统设计 12学时markmarkmark数据库系统实现 16学时物理存储结构查询处理查询优化数据库恢复数据库新技术实验 8学时sql语句使用(课后)数据库系统应用开发数据库管理系统实现Part II 数据库系统概述一、数据和数据库数据:信息的载体,具有语义数据库:有关联的数据的集合,长期存储在计算机上,有组织、可共享数据抽象:现实世界 →信息化
2022-02-21 17:12:04 205
原创 【密码学复习】【Chapter 2】【完美保密】
第三章 完美保密Part 0 任务证明一比特完美保密证明完美保密的等价公式证明完美保密等价不可区分性证明一次一密是完美保密证明完美保密的局限性Part 1 定义和基本属性随机变量: K,M,CK, M, CK,M,C概率:Pr[K=k],Pr[M=m],Pr[C=c]\Pr[K = k], \Pr[M = m], \Pr[C = c]Pr[K=k],Pr[M=m],Pr[C=c]1.1 定义完美保密在M\mathcal{M}M上Π\PiΠ是完美保密的,若对于M\mat
2021-11-15 22:26:24 1674
原创 【密码学原理与实践】【Chapter 1】【导论】
Chapter 1 导论Part 0 任务对下面提到的古典加密方案进行KPA攻击Part 1 古典密码学和现代密码学现代密码学:通过研究数学知识保护信息系统的安全Part 2 私钥加密设定通信双方事先共享了密钥构造的加密方案(cipher)提供双方的安全通信磁盘加密:同一个人在不同时间点通信2.1 加密词法密钥(k)和密钥空间(K\mathcal{K}K):k∈Kk \in \mathcal{K}k∈K明文(m)和明文空间(M\mathcal{M}M):m∈Mm \in
2021-11-15 22:15:55 3349
原创 【密码学原理与实践】Chapter0 - 大纲
你不应该自己发明加密算法学习目标什么是严格的信息论安全如何严格的加密信息在工程项目中,数学是如何起作用的学习大纲经典密码学和完美保密私钥加密、消息鉴别码、分组密码、单向函数数论、因子分解、离散对数密钥管理、公钥、数字签名陷门排列,随机预言机模型密码学协议...
2021-11-15 21:33:17 2418
原创 【代替-置换网络】【对代替-置换网络的攻击】【现代密码学】
代替-置换网络混淆扩散范例混淆Fk(x)=f1(x1)⋯f16(x16)F_k(x) = f_1(x_1)\cdots f_{16}(x_{16})Fk(x)=f1(x1)⋯f16(x16)分散对得到的值进行重新排列混淆-分散重复使用混淆与扩散确保输入中任何微小的改变都将混合以及传递到所有的输出比特代替置换(SP)网络单轮输入明文mmm,子密钥K1K_1K1,输出m⊕K1m \oplus K_1m⊕K1,作为S盒的输入S盒对输入进行(
2021-10-08 12:10:44 560
原创 伪随机函数及基于伪随机函数的CPA不可区分私钥加密方案
CPA不可区分实验PrivKA,Πcpa(n)PrivK_{\Alpha, \Pi}^{cpa}(n)PrivKA,Πcpa(n)定义生成密钥k←Gen(1n)k \leftarrow Gen(1^n)k←Gen(1n)输入1n1^n1n给A\AlphaA,A\AlphaA可以访问Enck(⋅)Enc_k(\cdot)Enck(⋅)预言机(即它可以加密任何它选择的消息),输出一对等长的消息m0,m1m_0, m_1m0,m1选择一个随机比特b←{0,1}b \leftarrow \{0
2021-09-21 21:36:46 609
原创 流密码及多消息窃听不可区分
流密码定义生成伪随机流的算法理解流密码本质上不是一个加密方案,而是构造加密方案的工具多消息窃听不可区分实验PrivKA,Πmult(n)PrivK_{\Alpha, \Pi}^{mult}(n)PrivKA,Πmult(n)定义A\AlphaA被给定输入1n1^n1n,输出一对消息向量M0⃗=(m01,m02,⋯ ,m0t),M1⃗=(m11,m12,⋯ ,m1t)\vec{M_0} = (m_0^1, m_0^2, \cdots, m_0^t), \vec{M_1} =
2021-09-21 21:29:23 348
原创 伪随机性及基于伪随机性的窃听不可区分私钥加密方案
伪随机性意义通过相对短的随机种子,生成一个相对长的伪随机串一个短的密钥就可以被用来加密长消息,突破了完善保密的限制伪随机发生器定义GGG为确定性多项式时间算法,l(⋅)l(\cdot)l(⋅)为多项式,GGG的输出以及满足的条件:∀s∈{0,1}n,G(s)={0,1}l(n)\forall s \in \{0, 1\}^n, G(s) = \{0, 1\}^{l(n)}∀s∈{0,1}n,G(s)={0,1}l(n)扩展性:∀n,l(n)>n\forall n, l(
2021-09-20 21:49:13 343
原创 密码学之计算安全加密相关概念
安全参数1n1^n1n算法及复杂度理论中,算法的运行时间为输入长度(数据规模)的函数,因此把安全参数表示为1n1^n1n的形式,也就是一个长度为nnn的全一串,用它代表安全参数,提供给攻防双方作为输入参数(它们使用的算法以1n1^n1n为输入应该在多项式时间内运行完毕)可忽略函数neglneglnegl定义∀p(⋅),∃N,st.∀n>N,f(n)<1p(n),f(n)isnegligible\forall p(\cdot), \exist N, st. \forall n \
2021-09-20 21:37:50 899
原创 【计算机网络】【应用层】【WEB应用】【HTTP协议】
WEB应用Web与HTTPWorld Wide Web: Tim Berners-Lee只有二十多年的历史依靠HTTP协议构成网页(Web Page)包含多个对象(Objects)HTML、JPEG、视频文件、动态脚本等基本HTML文件:包含对其他对象引用的链接对象的寻址(addressing)URL(Uniform Resource Locator): 统一资源定位器 RFC1738Scheme://host:port/path网页互相链接HTTP协议
2021-09-20 11:52:47 160
原创 密码学证明方法-规约法简介
背景记号及含义X\ChiX:某类很难解决的问题χ\chiχ:X\ChiX的一个实例A′\Alpha^{\\'}A′:试图解决χ\chiχ的敌手Π\PiΠ:基于X\ChiX的(一类)加密方案π\piπ:Π\PiΠ的一个实例A\AlphaA:破解Π\PiΠ的敌手ε(n)\varepsilon(n)ε(n):A\AlphaA的成功概率安全定义当假设X\ChiX成立时(即这类问题很难解决),不存在任何敌手能在多项式时间内,以不可忽略的概率破解加密方案假设说明假设X\ChiX就现在来
2021-09-20 11:42:56 1135
原创 【计算机网络】【应用层概述】
应用层发展历史1970s:基于文本的应用文本电子邮件远程访问计算机文件传输新闻1990sWeb冲浪电子商务20世纪末即时通讯对等文件共享P2P2000年以来:语音、视频游戏应用IP电话(VoIP)IP视频会议(Skype)视频分享Youtube电影点播(Netflix)在线游戏:魔兽世界社交网络:Facebook, Twitter主要内容网络应用体系结构客户机/服务器P2P混合结构网络应用的服务需求可靠性带宽时延
2021-09-19 22:07:36 132
原创 第一章 简介和古典密码(粗略版) - 现代密码学导论 Introduction to Modern Cryptography
Chapter 1 简介和古典密码1.1 密码学和现代密码学 简明牛津字典(2006)将密码学定义为“编写或破解密码”的艺术。这个定义在历史上上可能是准确的,但它并没有抓住现代密码学的本质。首先,它只关注秘密通信的问题。这一点可以从以下事实中看出:定义中指明的“密码”,在其他地方被称为“预先安排的信号系统,特别是用于确保传输信息的保密性”。其次,该定义将密码学视为一种艺术。的确,直到20世纪(可以说直到该世纪末),密码学是一门艺术。无论是构建好的密码,或是
2021-09-17 17:08:29 10399
原创 前言 - 现代密码学导论 Introduction to Modern Cryptography
Introduction to Modern Cryptography - Jonathan Katz and Yehuda Lindell前言 这本书介绍了密码学的基本原理和原则。旨在作为密码学本科或研究生课程的教科书,作为适合自学的一般介绍(特别是对于即将毕业的学生(beginning graduate students)),并作为学生、研究人员和从业人员的参考资料。 如今已有许多其他的密码学教科书,读
2021-09-12 20:37:06 2319
原创 计算机网络概述
计算机网络和因特网概述学习内容构成网络的基本硬件和软件网络边缘端系统网络应用网络核心链路、交换机接入网Internet网络的网络一、什么是计算机网络理解计算机网络 = 通信技术 + 计算机技术一种通信网络定义互连的、自制的计算机集合自制 - 无主从关系互连 - 互连互通通信链路:直接连接分组交换机路由器:网络核心(链路层)交换机:接入网二、Internet简介全球最大的互联网ISP(Inte
2021-09-11 17:13:35 1185
原创 【WEB漏洞】【低级】【部分账号信息泄露】总结
【WEB漏洞】【低级】【部分账号信息泄露】总结 声明:本文所有内容仅作学习交流使用 前言部分账号信息泄露是什么漏洞?数据库被入侵了?那样的话就不能是“部分”泄露了吧????。老实说,我总觉得“爆破”这个词太直白了(下
2021-08-20 17:25:46 349
原创 RecyclerView的使用
一、流程概览二、xml文件说明activity_main.xml在布局文件activity_main.xml中定义一个RecyclerView视图recycler_view_item.xmlRecyclerView中一个Item的组成(如Button,TextView等以及更复杂的布局)三、ViewHolder介绍继承自RecyclerView.ViewHolder功能封装 Item,便于Adapter使用说明通常我们使用View view = findViewB
2021-07-12 10:25:17 281
原创 java同类型、数量可变参数
可变参数相同类型数量不定public int sum(int ... number);本质数组public int sum(int ... number) { System.out.println(number.getClass()); return 0;}输出class [I # int型的数组使用数组的性质都适用public int sum(int ... number) { int sum = 0; for(int i = 0; i < nu
2021-07-09 14:54:39 163
原创 SS-Lab3 读取不同对象类型的统一实现
一、为什么需要可变参数实现需要代码复用逻辑清晰其他二、参考情景接收客户端输入的不同的对象(一个或多个)信息不同对象的属性可能不同将对象(一个或多个)插入到对应的集合中共性接收信息根据信息创建对象将对象插入集合不同接收到的对象的个数对象的属性功能分析readObjectAttributes() : 读取用户输入的对象属性buildObjectFromAttributes() : 根据对象属性生成对象实例insertObjectIntoSet() : 将对
2021-07-09 14:40:43 100
原创 从 Android Activity的生命周期体会 框架 和 Template Method 模板模式
模板模式实现一个过程的步骤是相同的每一步的内容可能是不同的就像我们的人生幼儿园、小学、中学、大学…每个人的经历都是特别的…Android Activity 的生命周期onCreateonStartonResumeonPauseonStoponDestroy操控 Activity 的一生public class MainActivity extends AppCompatActivity { private final String TAG = Mai
2021-07-07 18:39:33 249 2
原创 SS-Lab3 接收并使用正则表达式验证客户端输入
客户端交互需要做到提示用户输入什么接收用户输入验证输入合法实现MyReader : 负责与用户的交互MyRegularExpression : 负责检验用户输入MyReaderreadInt - 读取一个满足一定条件的整数效果>> useage: 0. show this usage table1. set the duty start and end date2. load duty table from file3. exit>> op
2021-07-07 17:42:36 133
原创 SS-Lab3 IntervalSet Interface设计
一、顶层(基本)接口 IntervalSet Interface该接口对 label 和 interval 的对应关系不做要求,仅定义 IntervalSet 应具有基本方法insert() : 向 IntervalSet 中插入一个时间段 interval /** * @method insert * @param1 start of interval * @param2 end of interval * @param3 label of interval * @funct
2021-07-01 20:06:15 145
原创 ICS大作业
计算机系统大作业题 目 程序人生-Hello’s P2P 专 业 计算机学 号 1190201515班 级 1903009学 生 乔家硕 指 导 教 师 吴锐计算机科学与技术学院2021年5月摘 要本论文通过对hello程序的产生过程、运行过程、IO过程的介绍,简单讲解了预处理、编译、汇编、链接的概念和作用,操作系统的进程调度和内存管理相关概念及过
2021-06-25 19:22:23 239
原创 Git - 远程仓库管理
一、建立本地仓库$ mkdir git-test$ cd git-test/$ git initInitialized empty Git repository in E:/document/git-test/.git/二、提交文件到本地仓库# create a new file$ echo "[0] This is the file to commit" > repository-remote-interaction.md# view the status$ git status
2021-06-16 19:59:04 353
原创 Git - 本地版本管理
一、建立本地仓库red1y@DESKTOP-IQV0MPQ MINGW64 /e/document$ mkdir git-testred1y@DESKTOP-IQV0MPQ MINGW64 /e/document$ cd git-test/red1y@DESKTOP-IQV0MPQ MINGW64 /e/document/git-test$ git initInitialized empty Git repository in E:/document/git-test/.git/二、w
2021-06-15 18:20:35 411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人