- 博客(137)
- 资源 (9)
- 收藏
- 关注
原创 AES 轮密钥(子密钥如何生成).md
AES首先将初始密钥输入到一个4*4矩阵中。这个4*4矩阵的每一列的4个字节组成一个字,矩阵4列的4个字依次命名为w[0]、w[1]、w[2]和 w[3]。它们构成了一个以字为单位的数组 w。接着,对w数组扩充 40 个新列,构成总共 44 列的扩展密码数组。新列以如下的递归方式产生:(1)如果 i 不是 4 的倍数,那么第 i 列由如下等式确定:w[i]=w[i−4]⊕w[i−1]w[i]...
2019-04-04 19:11:03
14767
3
转载 AES MixColumns 列混淆.md
转载自我的笔记: http://caf99af3.wiz03.com/share/s/3a-pHP3y4ABk2SLM5t03faoi0l_0X73Ex4342GXNjU2XHnrHS-box s盒替换shiftRows行变换MixColumns 列混淆这个部分会接受4个字节的输入,并输出4个字节AES 所用的加法和乘法是基于数学(译者注:近世代数)的域论。尤其是 AES 基于有...
2019-04-04 19:05:10
7595
5
转载 有限域GF(2^8).md
原文:https://blog.csdn.net/luotuo44/article/details/41645597现在重点讲一下GF(2n),特别是GF(28),因为8刚好是一个字节的比特数。前面说到, GF(p)GF(p)GF(p),p得是一个素数,才能保证集合中的所有元素都有加法和乘法逆元(0除外)。但我们却很希望0到255这256个数字也能组成一个域。因为很多领域需要用到。mod ...
2019-04-04 19:02:00
9336
2
转载 AES 对称密码.md
AES 使用 SPN 结构。输入分组为 128bit 也就是16 byte。加密 与 解密S-box s盒替换关于 S-box 的来看 有限域 GF(28)GF(2^8)GF(28) , 根据明文字节(十六进制)来作为横坐标与纵坐标,替换为 S-box 中相应位置的字节。shiftRows行变换以 4 字节为单位向左平移[MixColumns 列混淆](AES MixColu...
2019-04-04 18:59:54
357
转载 3DES 加密
原文我的笔记:http://caf99af3.wiz03.com/share/s/3a-pHP3y4ABk2SLM5t03faoi3joL4m2GE4eh23pr2H3eqa1F现在还有些地方还在使用3DES,但其处理速度不高,除了特别重视向下兼容性很少使用于新的用途。三重DES 加强 DES 的原理就是经过三次 DES 过程,秘钥长度就变为了 56 × 3 = 168 bit。3DES...
2019-04-04 18:55:33
786
转载 DES 对称密码.md
DES 现在可以暴力破解,所以不应再用。DES是一种将64bit的明文加密成64为密文的对称密码算法,对于长于64bit的明文,会将其进行分组然后迭代加密,迭代的方式称为模式,DES 是分组密码中的一种。DES 秘钥长64bit,严格来说长度为56bit,每7bit后跟1bit校验位。DES 结构(Feistel 网络)明文被分为两半部分处理,中间‘子秘钥’指的是本轮加密所使用的秘钥...
2019-04-04 18:52:15
354
转载 关于 Elasticsearch 内存占用及分配
Elasticsearch 和 Lucene 对内存使用情况:Elasticsearch 限制的内存大小是 JAVA 堆空间的大小,不包括Lucene 缓存倒排索引数据空间。Lucene 中的 倒排索引 segments 存储在文件中,为提高访问速度,都会把它加载到内存中,从而提高 Lucene 性能。所以建议至少留系统一半内存给Lucene。Node Query Cache (负责缓存...
2019-03-18 16:39:30
15555
3
原创 ubuntu samba 搭建与挂载
服务端搭建samba服务:安装samba套件:sudo apt install -d samba*创建要共享的目录:sudo mkdir /samba_dirsudo chmod 777 /samba_dir修改配置文件sudo vim /etc/samba/smb.cnf# 在文件最后添加:security = user # 这个是让你的Samba服务器是属...
2019-03-01 14:09:56
2110
原创 双数组Trie树 Double-arrayTrie
Tire 树结构存在较大的数据稀疏,造成了空间浪费。Double-array结合了array查询效率高、list节省空间的优点,可以有效降低空间浪费,具体是通过两个数组base、check来实现。Trie树可以等同于一个自动机,状态为树节点的编号,边为字符。base数组中每个元素对应trie中的一个节点即状态;check数组表示的事某个状态的前驱状态,用来验证转移的有效性;两个数组满足如下...
2019-02-24 21:32:15
815
原创 go 语言方法与接口
###go 语言方法与接口go语言中没有类class的概念、没有对象object关键词、也没有继承(但可以使用组合来实现继承关系),但提供了接口的支持,可以使用接口来实现面向对象的一些特性。在go语言中结构体struct和其他面向对象语言中的class有同样的地位。结构体是将零个或者多个任意类型的命令变量组合在一起的聚合数据类型。每个变量都叫做结构体的成员。type user struct ...
2018-12-22 16:57:12
366
原创 创建 docker 私有仓库
关闭https传输vim /etc/docker/daemon.json添加"insecure-registries":["本机ip:端口"]{ "registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"],
2018-12-03 10:57:18
396
原创 Flask app.py
源码中有这么几个装饰器:before_request(self, f) # 注册一个在请求到达前要执行的函数before_first_request(self, f) # 注册在整个应用实例第一个请求到达前要执行的函数after_request(self, f) # 注册一个在请求处理后的函数teardown_request(self, f) ...
2018-11-15 17:27:33
1820
原创 flask 核心 之 应用上下文 及 请求上下文
Werkzeugs 是 Flask 的底层WSGI库。###什么是WSGI?一段简单的app:def dispath_request(self, request): return Response('Hello World!')def wsgi_app(self, environ, start_response): request = Request(environ...
2018-11-14 12:39:06
1246
原创 安装 kubeadm
安装 kubeadmapt-get update && apt-get install -y apt-transport-httpscurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - # 可以挂代理下载cat <<EOF >/etc/apt/source...
2018-08-15 17:55:57
1664
3
原创 docker pull 失败报错原因
错误:Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:51086->[::1]:53: read: connection refused原因可能有两个:如果可以...
2018-08-06 17:55:51
19768
原创 Docker笔记 基础理解
“`Docker笔记一容器的基本结构 镜像(images)就是一堆只读层的统一视角。 从上向下可以看到多个只读层,他们从叠在一起。上层有指针指向本层,并且这些只读层可以在主机访问。docker 的统一文件系统(Aufs)技术将不同的层整合成一个文件系统,为这些层提供了统一的视角,在用户角度来看,只存在一个文件系统。 容器 容器就是在镜像的统一视角上加可读可写的一...
2018-06-19 15:57:27
309
原创 Linux 下录屏制作 GIF 图片
Peek 是一款操作非常简单的 把录屏区域转换为gif图片的工具 也可以录制MP4等其他格式文件, 源代码在github托管,peek-1.2.2-0-x86_64.AppImage 下载好后chmod a+x peek-1.2.2-0-x86_64.AppImage # AppImage 是一个被打包好的安装文件 加上执行权限后 点击即可打开 或者执行 ./xxx.AppImage
2018-03-12 15:55:05
1112
转载 ubuntu apt 安装软件时 出现(--configure)时出错解决办法
好像是因为以前在更新系统时强制中断的原因, 后来更新软件经常卡在一个地方不动,然后报(–configure)时出错。sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old # 现将info文件夹更名sudo mkdir /var/lib/dpkg/info # 再新建一个新的info文件夹sudo apt-get update, apt-ge...
2018-03-05 15:34:38
1898
原创 JavaScript apply、call和bind 方法的使用
首先,这三个方法都是改变函数的this对象的指向来扩展函数赖以运行的作用域。每个函数都包含这三个非继承而来的方法。 他们的用途相同,都是在特定的作用域中调用函数。第一个参数都是this要指向的对象。都可以传递参数,传参方式不同。apply、call 返回函数运行结果, bind 会生成一个函数传参: apply(Obj, [ 参数1,参数2,… ]), call(Obj, 参数1,
2018-01-16 15:21:16
325
原创 自动生成.gitignore
.gitignore文件是用于对git进行设置,让其忽略对某些文件的跟踪。 http://www.gitignore.io/api/参数 , 这个参数根据需要填写,比如说Python也可以传递多个参数以 逗号 隔开: 可以写一个Python脚本 或shell脚本 来实现一键创建.gitignore。
2017-12-20 11:29:36
3696
原创 Django URLconfs 中通过包含其他URLconfs 来管理部分url相同的url
第一种情况:一个项目下每个相同app下的每个url有相同的前缀,为了方便管理把各自的不同url部分交给各自的URLconfs管理。 在任何时候,你的urlpatterns 都可以包含其它URLconf 模块。这实际上将一部分URL 放置于其它URLconfs 下面。from django.xonf.urls import include, urlurlpatterns = [ url(r'
2017-10-09 17:12:13
850
原创 修改mysql 数据库文件默认存储目录
MySQL数据库默认的数据库文件位于/var/lib/mysql下, 我的MySQL通过brew安装(Mac) 数据库文件在/usr/local/var/mysql 下。 1、查看数据库文件存储目录:hunyxvs-MacBook-Air:mysql hunyxv$ mysqladmin -u root -p variables | grep datadirEnter password: |
2017-10-08 11:03:03
5690
1
原创 拉手网Python程序员面试题
拉手网Python程序员面试题 拉手网Python程序员面试题,有用人用10行代码解决,有人用了一行代码解决是多么牛的赶脚。有种被秒杀的赶脚,题目在此https://www.jinshuju.net/f/EGQL3Ddic={}def num(aa,bb,cc): if aa%bb==0: return cc else: return aadef
2017-07-19 16:38:53
544
转载 mac下安装和使用brew 就像在linux下安装软件
一,安装brew1,安装brewcurl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 12,安装完成后执行brew提示:Please run brew update!3,按照提示更新,执行brew update报错:Error: /usr/local must be
2017-07-12 22:05:03
1964
转载 python的with用法
转载: kissdata With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。如果不用with语句,代码如下:file = open("/tmp/foo.txt")data = file.read()file.close(
2017-05-11 21:19:29
552
原创 scrapy 登录
登录网站http://c.biancheng.net登录成功会显示 xxx在线import scrapyclass BianchengItem(scrapy.Item): url = scrapy.Field() user = scrapy.Field() # -*- coding:utf-8 -*-from scrapy.spider import Cr
2017-04-23 10:40:10
1840
转载 scrapy实例 ----- 爬取小说
借鉴: 静觅scrapy教程 爬取目标:顶点小说网 http://www.23us.com/ 希望顶点小说网不要生气首先来编写items.py#-*- coding:utf-8 -*-# Define here the models for your scraped items## See documentation in:# http://doc.scrapy.org/en/late
2017-04-21 17:35:02
8523
转载 scrapy ------ 爬取豆瓣电影TOP250
转载自 —> 原文#items.py# -*- coding: utf-8 -*-import scrapyclass DoubanMovieItem(scrapy.Item): ranking = scrapy.Field() #排名 movie_name = scrapy.Field() #电影名称 score = scrapy.Field()
2017-04-17 21:37:28
1883
原创 BeautifulSoup find() 和 find_all()
BeautifulSoup 里的 find() 和 findAll() 可能是你最常用的两个函数。借助它们,你可以通过标签的不同属性轻松地过滤 HTML 页面,查找需要的标签组或单个标签。这两个函数非常相似,BeautifulSoup 文档里两者的定义就是这样:find_all(tag, attributes, recursive, text, limit, keywords)find(tag,
2017-04-14 08:57:47
3102
原创 计蒜客 -- 求平方根
设计函数int sqrt(int x),计算 x 的平方根。输入格式输入一个 整数 x,输出它的平方根。直到碰到文件结束符(EOF)为止。输出格式对于每组输入,输出一行一个整数,表示输入整数的平方根。样例输入1 2 3 4 5 6 7 8 9 样例输出1 1 1 2 2 2 2 2 3当时忘了快速求平方根法是参考的哪里的了……….再去找找不到了#include<st
2017-04-07 16:10:42
1163
原创 计蒜客 -- 爬楼梯
假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1 级或者 2 级,那么你有多少种方法爬到楼梯的顶部?输入格式第一行输入一个整数n(1≤n≤50),代表楼梯的级数。输出格式输出爬到楼梯顶部的方法总数。样例输入5 样例输出8一开始用的递归。。。。n 太大时程序运行超时,递归:(超时)#include<stdio.h>int L(int n,int *count){ if(n == 0)
2017-04-07 11:18:13
347
转载 计蒜客 -- 单独的数字
给定一个数组 A,除了一个数出现一次之外,其余数都出现三次。找出出现一次的数。如:{1,2,1,2,1,2,7},找出 7。你的算法只能是线性时间的复杂度,并且不能使用额外的空间哦~输入格式第一行输入一个数n(1≤n≤500),代表数组的长度。接下来一行输入 n 个 int 范围内(−2147483648…2147483647)的整数,表示数组 A。保证输入的数组合法。输出格式输出一个整数,表示数组
2017-04-06 17:35:41
2162
1
原创 计蒜客 -- 整数转换成罗马数字
给定一个整数 numnum,将整数转换成罗马数字。如 1,2,3,4,51,2,3,4,5 对应的罗马数字分别为I,II,III,IV,V等,更详细的说明见此 链接。输入格式第一行输入一个整数 num(1 \leq num \leq 3999)num(1≤num≤3999)。输出格式输出 numnum 对应的罗马数字。样例输入123 样例输出CXXIII#include<stdio.h>int m
2017-04-05 23:16:20
498
原创 计蒜客 -- 罗马数字转换成整数
给定一个罗马数字 ss,将罗马数字转换成整数。如罗马数字I,II,III,IV,V分别代表数字 1, 2, 3, 4, 51,2,3,4,5。首先要来了解一下罗马数字表示法,基本字符有 77 个:I、V、X、L、C、D、M,分别表示 11、55、1010、5050、100100、500500、10001000。在构成数字的时候,有下列规则:1、相同的数字连写,所表示的数等于这些数字相加得到的数,如:
2017-04-05 23:15:18
646
原创 计蒜客 -- 元素移除
给定一个数组和一个数(该数不一定在数组中),从数组里删掉这个数字,返回剩下的数组长度。如:A[] = {1, 2, 3, 4, 5}A[]=1,2,3,4,5,要删除数字 33,那么返回数组长度为 44。亲爱的小伙伴们,题目是不是很简单呢?提示:int removeElement(int A[], int n, int elem)其中,n代表数组长度,elem代表要删掉的元素。输入格式第一行输入一个
2017-04-05 15:38:42
491
原创 泥塑课
题目来自:https://nanti.jisuanke.com/t/6小米是一个幼儿园老师,每学期的泥塑课上,她都会给每个学生发不超过 250250 立方厘米的等量橡皮泥,教大家做泥塑。在上课过程中,她发现每个班都恰好有一个小朋友会去抢另一个小朋友的橡皮泥,于是她决定,在正式开始做泥塑前,让大家把手里的橡皮泥都捏成一个立方体,并且测量手里捏好的橡皮泥的长、宽和高。这样,她就可以知道谁被谁抢了橡皮泥了
2017-04-04 17:37:55
1989
原创 希尔排序
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位 原始的算法实现在最坏的情况下需要进行O(n2)的比较和交换。V. Pratt的书[1]对算法进行了少量修改
2017-03-23 16:55:44
447
转载 (转)SQLite3 多线程访问
import timeimport threadingimport sqlite3def nomal_producer(conn): ''' @summary: producer defination ''' counter = 0 conn.isolation_level = None conn.row_factory = sqlite3.Row
2017-03-15 08:31:48
1984
转载 yield表达式, 四种形式
yield表达式, 四种形式: a. 不接受输入值或者输入值是None yield 1 b. 接受输入值 s = yield 1 c. 接受输入,但不返回数据,这样默认返回None s = yield d.既不接受输入,也不返回值,默认返回None yield 第一种:当函数调用到yield时,返回y
2017-03-10 15:10:11
3125
原创 python 多重装饰器执行顺序
#file_1.py#--coding:utf-8 --#代码来自http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.htmlclass mylocker: def __init__(self): print("mylocker.__init__() called.") @staticmethod
2017-03-03 09:37:04
2673
Linux常用命令全集
2016-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人