CFB加密模式的python实现
CFB加密模式的python实现python代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273from typing import Tupledef encrypt_des_cfb(key, iv, plaintext): # 将密钥和初始化向量转换为位数组 key_bits = bytes_to_bits(key) iv_bits = bytes_to_bits(iv) # 生成DES加密器对象 cipher = DES(key_bits) # 将初始化向量加密得到第一个密文块 ciphertext = cipher.encrypt(iv_bits) # 循环加密明文的每个字节 for i in range(len(plaintext)): # 将密文块的前8位与明文的当前字节进行异或运算得到 ...
git和github使用
git和github使用Git和GithubGit是一个运行在电脑上的版本控制软件,而Github是基于Git这个版本控制软件打造的网站。
Git有助于多人协作和版本控制
Git的三个概念:提交commit,仓库 repository ,分支 branch
开源项目寻找指南找开源项目的一些途径• https://github.com/trending/• https://github.com/521xueweihan/HelloGitHub• https://github.com/ruanyf/weekly• https://www.zhihu.com/column/mm-fe
查找资源特殊的查找资源小技巧-常用前缀后缀• 找百科大全 awesome xxx• 找例子 xxx sample• 找空项目架子 xxx starter / xxx boilerplate• 找教程 xxx tutorial
教学视频https://www.bilibili.com/video/BV1e541137Tc/?spm_id_from=333.337.search-card.all.cli ...
Dockerfile
Docker Dockerfile什么是 Dockerfile?Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
指令详解COPY复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
格式:
12COPY [--chown=<user>:<group>] <源路径1>... <目标路径>COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
**[–chown=:]**:可选参数,用户改变复制到容器内文件的拥有者和属组。
**<源路径>**:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如:
12COPY hom* /mydir/COPY hom?.txt /mydir/
**<目标路径>**:容器内的指定路径,该路径不用事先建好,路径不存在 ...
docker-compose的写法(实现pwn的动态flag)
docker-compose的写法(实现pwn的动态flag)1.Compose介绍Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose 不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过Service来定义,然后使用docker-compose 脚本来启动,停止和重启应用,和应用中的服务以及所有的依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
2.compose常用服务配置参考Compose文件是一个定义服务,网络和卷的YAML文件。Compose文件默认文件名为docker-compose.yml。
提示:您可以对此文件使用.yml或者.yaml扩展名。
与docker运行一样,默认情况下,Dockerfile中指定的选项(CMD,EXPOSE,VOLUME,ENV)都会继续使用,你不需要在docker-compose.yml中再次指定它们。
buildbuild可以指定包含构建上下文 ...
Docker-compose常用命令
Docker-compose常用命令文档地址官方文档:https://docs.docker.com/compose/reference/overview/
1docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
部分命令选项如下:
-f,–file:指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个 yml;
-p, –project-name:指定工程名称,默认使用 docker-compose.yml 文件所在目录的名称;
-v:打印版本并退出;
–log-level:定义日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)。
常用COMMANDhelpdocker-compsoe -help查看帮助
configdocker-compose config -q 验证 docker-compose.yml文件。当配置正确时,不输出任何内容,当配置错误时,输出错误信息。
pulldocker-compose ...
Docker Compose
Docker ComposeCompose 简介Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程。
Compose 使用的三个步骤:
使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。
docker-compose.yml 的配置案例如下(配置参数参考下文):
实例12345678910111213141516\# yaml 配置实例version: '3'services: web: build: . ports: - "5000:5000" volumes: - .:/code \- logvolume01:/var/l ...
贪吃蛇代码
贪吃蛇代码功能
初始化snake,食物,窗口大小
绘制背景和蛇还有食物的图标(游戏玩法,和分数)
snake的移动
snake改变方向
snake吃食物(游戏分数)
游戏暂停
播放音乐
三部曲
加载游戏数据(初始化,init();)
绘制图形(绘图 DrawMap();)
玩家操作(数据更新 move();ChangeDir();)
实现过程
给指针赋值整数
给指针赋值整数1234567891011121314151617181920//1#include <stdio.h>int main(){ int *ptr; int n = 5; ptr = &n;//&n就是已分配内存的(int型)的地址 printf("%d",*ptr);}//2#include <stdio.h>int main(){ int *ptr; *ptr = 5; printf("%d",*ptr);}
通过上述例子:我们知道了指针变量不能直接赋值。因为创建一个指针时,系统只分配了存储指针本身的内存,并未分配存储数据的内存,因此在用指针之前必须用已分配的地址初始化它。以上述为例2中的意思就是把5存储在ptr所指向的位置,但是pt没有初始化,其值是一个随机值,所以不知道5将存储在何处。程序会崩溃.
行指针和列指针
行指针和列指针一,行指针主要指二维数组
1int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
换个角度看世界:
如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的”元素是一个一维数组。那么这个二维数组是由是由三个“特殊的”元素组成的一个“特殊的”一维数组。
a是这个“特殊的”一维数组的名称,也就是首地址,也就是第一个元素的地址,也就是第一行的首地址,是指首行一整行,并不是指某个具体元素。那么我们称之为“行指针”。同理:a+0,a+1,a+2,都是行指针。
类型,运算符与表达式
类型,运算符与表达式1.变量名
变量名以下划线“_”和字母开头,是由字母和数数字组成的序列,下划线被当成字母。
变量不能使用保留的关键字“if,else,int等。
选择的变量名要能尽量表达变量的用途。
2.数据类型及长度
C语言只提供4种基本数据类型
char 字符型,占用__一个字节__。
int 整型,通常反映了__所用机器中整数的最自然长度__。
float 单精度浮点型。
double 双精度浮点型。
__short__与__long__两个限定符用于限定整型(int)。
(声明中关键字_int_可以省略)
long 类型通常为32位,short类型通常为16位,int类型可以为16位或32位。(根据各个硬件特性不同,长度也不同,但至少int类型长度不得大于long,不得小于short。
类型限定符__signed__和__unsigned__可用于限定char类型或任何整型。
unsigned类型的数总是正值或零,并遵守[^算术模二]定律,不带限定符的char类型对象是否带符号则取决于具体机器,但可打印字符总是正值。
long duoble 类型表 ...