开始一个小项目-伴学
开始创建前端文件夹,Vue框架初始化。简单 不赘述 官网就有命令 然后一直Enter 后端框架目标:创建后端文件夹,Express框架初始化。 1234567# 第一步 初始化npm init -y # 第二步 安装依赖包npm install express mongoose cors dotenv bcryptjs jsonwebtoken npm install nodemon -D 第二步说明: express — Web框架(处理HTTP请求) mongoose — 连接和操作MongoDB的工具 cors — 允许前端跨域请求后端 dotenv — 管理敏感配置(数据库密码等) bcryptjs — 密码加密 jsonwebtoken — 登录令牌(JWT) nodemon — 代码改动后自动重启服务器(开发用) 第三步,打开 backend\package.json,找到 "scripts" 那一段,替换成: 1234"scripts": { "dev": "nodemon sr...
ET-BERT
摘要加密流量分类需要从内容不可见、样本不均衡的流量数据中,提取区分度强、鲁棒性好的流量表征,以实现精准分类;这对网络安全与网络管理至关重要,但也极具挑战。现有方法过度依赖人工设计的深层特征,严重依赖数据规模,难以泛化到未知流量场景。如何利用开放域海量无标注流量数据学习强泛化表征,仍是关键难题。 本文提出ET‑BERT(加密流量 Transformer 双向编码器),从大规模无标注加密流量中预训练数据报级上下文感知表征。预训练完成后,仅需少量任务专属标注数据微调,即可在五大加密流量分类任务上达到当前最优性能: ISCX‑VPN‑Service 数据集 F1:98.9%(↑5.2%) 安卓跨平台任务 F1:92.5%(↑5.4%) CSTNET‑TLS 1.3 任务 F1:97.4%(↑10.0%) 同时,本文通过加密算法随机性分析,从理论上解释了预训练模型的优异表现,为理解加密流量分类能力的边界提供了重要依据。代码开源:https://github.com/linwhitehat/ET-BERT 关键词:加密流量分类、预训练、Transformer、掩码突发模型、同源突发预测 ...
Vue
开始Vue是一款用于构建用户界面的渐进式JavaScript框架,它本身只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合,同时能够驱动复杂的单页应用或多页应用。 渐进式,它类似于迭代开发,Vue只包含一些核心代码,可以让开发者搭建基本页面,如果开发者所开发项目的页面功能相对比较丰富,那么需要使用相关插件去完成搭建。 Vue官方插件有Pinia、Vuex、VueRouter等,而Vue第三方插件也是用来额外添加功能的,是非官方人员编写的插件,如VueLazyload、VeeValidate、Element-Plus等。 声明式渲染可以理解为,Vue基于标准HTML拓展了一套模板语法,使得开发者可以声明式地描述最终输出的HTML和JavaScript状态之间的关系;响应式可以理解为,Vue会自动跟踪JavaScript的状态变化,并在状态发生改变时响应式地更新DOM。 Vue2是以JavaScript为开发基础的,而Vue3是从0开始重构的,将开发基础切换为TypeScript(将弱类型程序语言开发转向强类型程序语言开发),不仅可以满足中小型项目的开发,还更适合中大型项目的...
Go语言
开始Go(又称 Golang)是谷歌 2007 年设计、2009 年开源的静态强类型、编译型、原生并发编程语言,主打简洁、高效、原生高并发,专为解决 C++ 编译缓慢、并发编程复杂、项目依赖管理混乱等开发痛点而生。 应用场景: 后端高并发服务、区块链开发、云原生底层工具。 语言/框架 RPS(每秒请求数) 内存占用 延迟 Go (Gin) 105,000 190 MB 10 ms Java (Spring) 40,000 1.4 GB 50 ms Python (FastAPI) 8,000 1.2 GB 150 ms 同样的 Web 服务,Go 的处理能力是 Java 的 2.6 倍、Python 的 13 倍,内存只用了 Java 的 1/7、Python 的 1/6,延迟也最低。 12345678910# 开发时快速测试代码go run start.go # 先编译生成.exe文件 (构建生产版本)go build start.go./start.exego fmt # 统一代码风格go test # 进行单元...
区块链原理
区块链技术概述区块链,这个概念最早出现于2008年10月31日(北美东部时间)署名“中本聪”的作者发表的比特币系统技术白皮书《比特币:一种点对点的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System),在该白皮书中首次提出区块链是一种用于记录交易账本的数据结构。 2019年10月25日,习近平在中央政治局第十八次集体学习时强调把区块链作为核心技术自主创新重要突破口,加快推动区块链技术和产业创新发展。 区块链技术背景(1)随着人类处理大数据的数量、质量和速度的能力不断增强,推动人类经济形态由工业经济向数字经济形态转化,数字技术被广泛使用并由此带来了整个经济环境和经济活动的根本变化。(2)企业、消费者和政府之间通过网络进行的交易迅速增长,必须极大地降低社会交易成本,提高资源优化配置效率,才能提高产品、企业、产业附加值,推动社会生产力快速发展。(3)人类社会交易是个体或组织的价值创造、价值交换与价值记录的过程。在这个过程中,所有环节的“可信”是有效社会交易活动的前提与基础,信任是确保人类社会交易甚至生产关系得以维系发展的核心要素。...
Python
开始(1)标识符① 第一个字符必须是字母表中字母或下划线 _ 。② 标识符的其他的部分由字母、数字和下划线组成。③ 标识符对大小写敏感。④ 在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。 (2)保留字‘False’, ‘None’, ‘True’, ‘and’, ‘as’,’assert’, ‘break’, ‘class’, ‘continue’,’def’, ‘del’, ‘elif’, ‘else’, ‘except’,’finally’, ‘for’, ‘from’, ‘global’, ‘if’,’import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’,’not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’,’while’, ‘with’, ‘yield’ 等。 (3)行与缩进①python最具特色的就是使用缩进来表示示代码块,不需要使用大括号{} 。② 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。 12345if 10 > 5: pr...
算法与数据结构
灵神:如何科学刷题? https://leetcode.cn/discuss/post/3141566/ru-he-ke-xue-shua-ti-by-endlesscheng-q3yd/新动计划: https://leetcode.cn/studyplan/primers-list/ 结果 含义 核心排查方向 出错记录 PE 格式错误 空格 / 换行 / 大小写 / 输出顺序 / 字符宽度(如 %5d)/ 标点 打印时多了一个空格 WA 答案错误 逻辑漏洞、边界条件、数据类型溢出、特殊用例未处理(如 0 / 负数 / 极值) 边界0没处理 RE 运行时错误 数组越界、除 0、空指针、栈溢出、递归爆栈、scanf 参数漏 & TLE 超时 算法复杂度太高、死循环、不必要的重复计算 MLE 内存超限 数组开太大、内存泄漏、重复申请内存 CE 编译错误 语法错误(少分号 / 括号)、头文件缺失、变量未定义、数据类型写错 平衡二叉树要求所有节点的左右子树高...
C语言程序设计
重要知识点闰年的判别条件是:该年年份能被4整除但不能被100整除,或者能被400整除。闰年的2月有29天。 素数(质数)的定义:大于 1 的自然数,除了 1 和它本身,不能被其他自然数整除。 关于数组:三种声明方式 数据类型 数组名称[长度n] = {元素1,元素2…元素n}; 数据类型 数组名称[长度n]; 数据类型 数组名称[] = {元素1,元素2…元素n}; 关于指针:int* arr 和 int *arr 是等价写法。 1234567int arr[5] = {1,2,3,4,5}; //定义指针p并初始化,把arr的首地址赋值给pint *p = arr;// 所以,*p是值,p是地址。// *p = *(p + 0) = p[0]// *(p + i) = p[i] 返回指针类型的函数,return p而不是return *p,如果是后者,那么函数返回类型应该是int。 简单题最大公约数和最小公倍数12345678910111213#include "stdio.h" void main(){...
前端工程化
ES+ Git Node.js Express MongoDB Ajax Axios ES6+ECMAScript是标准,JavaScript是其主要实现。 ES5的严格模式1'use strict' ◆严格模式下八进制的限制严格模式下不允许使用0开头的八进制数字表示法(如012)。会抛出Uncaught SyntaxError: Octal literals are not allowed in strict mode。不过允许使用十六进制表示法(如0x12)。设计原因: 数字前导零存在语义歧义(数学上012应与12等价),属于历史遗留问题。 ◆严格模式下变量声明的限制不允许未声明直接使用变量(如username = 100),会抛出username is not defined错误。非严格模式对比: 普通模式下会自动创建全局变量,属于隐式变量声明。 let 与 const◆ES6新增了let命令。 不存在变量提升:let不像var那样会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。 暂时性死区:只要块级作用域内存在let命令,它...
JavaScript进阶
HTMLCollection与NodeList区别① HTMLCollection 对象 能够返回HTMLCollection 对象的属性和方法: getElementsByTagName()、getElementsByClassName()、children HTMLCollection 对象的成员只能是元素类型对象 。 没有 forEach 方法。 是动态的集合,如果文档中新增了满足条件的元素,集合会自动更新。 ② NodeList 能够返回 NodeList 对象的属性和方法: querySelectorAll()、getElementsByName()、childNodes NodeList 对象的成员可以是节点类型的对象(包括元素类型、document 等)。 具有 forEach 方法。 静态的集合。 执行上下文全局执行上下文1.在JS代码执行前,就会创建一个window对象,这个window就是全局执行上下文对象。 2.预处理 变量处理:找到所有使用var声明的全局变量,给全局执行上下文对象添加属性,但不赋值(或者说值为undefined)。 函数处理:找到使...




