密码学笔记 分组密码概述定义分组密码将明文消息编码表示后的二进制序列划分成固定大小的块, 每块分别在密钥的控制下变换成等长的二进制密文。 要求分组密码设计时应该满足以下要求 分组长度足够长,以防止明文穷举攻击 密钥长度要适宜,不能过长也不能过短。过长不利于管理,过短容易受到密钥穷举攻击 置换算法应足够复杂 加密和解密运算简单,易于实现 明文和密文长度相同 设计原则 扩散 扩散是指密文中的任一比特都要
C++面向对象笔记 NEW与Delete以如下的代码为例 int *p = new int; int *q = new int[10]; Student *pp = new Student(); Student *qq = new Student[10]; // 假设一个Student对象占用16字节 new首先分配一块地址空间,然后**调用构造函数**,并返回一个指针,该指针指向地址空间的首地址。为了记录不同的空
408 2009真题错题整理 选择题08.B树记住阶数是指划分区间的个数,即根节点最多m-1个节点,最多m棵子树。 13.浮点数加减尾数对阶(难点)31.软链接,硬链接软链接: 设置count引用计数器,用户不能直接删除索引节点,当count=0(即引用数为0)时由操作系统删除**硬链接**: 直接创建一个Link文件(表面是文件,实际上保存着目标文件地址)指向目标文件,容易引发的问题:当被指向的文件被删除后,该地址有新的文
浅谈PageRank算法以及实现 背景网络就像是一张图,网页作为节点,链接作为边。当我们想要对网页进行排名,如此多的网页如何实现呢?于是google公司基于链接投票法开发了PageRank算法用于搜索引擎对网页进行排名。 原理 每个链接的投票作用于他的源页面 如果页面$j$有$n$个出链,那么每个出链会获得$r_j/n$张票 页面$j$的个人重要度是所有他的入链的票数之和根据以上的理论基础我们可以推出: 一张来自重要度很高的页面的
使用selenium自动化登陆tb 背景前些日子学习了爬虫,尝试使用selenium自动化登陆淘宝,但淘宝现在的反爬虫技术能识别selenium等浏览器自动化使登陆界面出现滑块。根据网上的资料,可以在后台找出检测浏览器的js脚本进行屏蔽干扰,但本文没有完善这一功能。 准备工作 需要浏览器(本文使用chrome) 需要浏览器对应的驱动(需要自行下载,驱动版本与浏览器版本需要对应一致) python3.6 + selenium 简
map 与 unordered_map的基本用法及区别 map特性 所有元素根据元素的键值key自动排序 每个元素都是<key,value>的键值对 不允许有键值相同的元素 key不能修改,但可以通过key修改与其对应的value 可以删除与value对应的键值key,重新插入以达到修改的目的优点 有序性,这是map结构最大的优点,可以简化很多操作 红黑树,内部实现一个红黑树使得map很多操作可以在$log_n$复杂度下就可以实现,效率非常
C++ 字符串与数组 字符串匹配问题Brute-Force顺序遍历母串,将每个字符作为匹配的起始字符,判断是否匹配字串。时间复杂度为$O(m*n)$。 Rabin-Karp将每一个匹配字串映射为一个hash5值。例如,将子串看成是一个多进制数,比较它的值与母串中相同长度子串的hash值,如果相同,再细致地按照字符确认字符串是否确实相同。顺序计算母串hash值的过程中,使用增量计算的方法:扣除最高位的hash值,增加最低
代码素养 基本代码素养关于空格用空行将大块代码分成逻辑上的’段落’不使用tab键 关于括号C指针中的指针符号靠近类型名, 如写成int* p,而不写成int *p 一个函数只专注做一件事情一个函数很复杂时,尽量将这个函数拆解成几个简单的函数 关于命名 类名用大写字母开头 较长的函数名由多个单词组成,每个单词首字母大写 函数名很短的话首字母小写 变量名可以由多个单词构成,首个单词的首字母小写,其他单词的首字母
配置coc-clangd 解决找不到clangd在配置coc.nvim下的插件coc.clangd时,安装好插件在打开cpp文件时报错提示 [coc.nvim] clangd was not found on your PATH. :CocCommand clangd.install will install 10.0.0. 解决方法 nvim下输入:CocCommand clangd.install nvim会自动在后
终端下配置代理 终端下设置代理export http_proxy=http://127.0.0.1:8889 git设置代理git config --global http.proxy http://127.0.0.1:8889 git config --global --unset http.proxy npm设置代理npm config set proxy=http://127.0.0.1:8889 npm取