在银河麒麟系统QEMU上运行RISC-V64位版本的Linux
镜像选择首先我们要安装kylin操作系统,这里我的镜像是
1Kylin-Desktop-V10-SP1-Release-hwe-2107-x86_64.iso
可以去google搜索并下载,此镜像为较新版本,下面就是VMWARE虚拟机装在镜像安装系统的过程,
基本配置基本操作不再强调,默认配置结束后,打开虚拟机,这是我的默认配置。它会提示安装kylin系统,我们安装系统,注意内存的分配问题,我们要至少分配60G,相信我,我在失败了10多次之后选择了80G,不过也有一点,不一定你的计算机盘的存储空间一定要有80G,而是,他在让你填写存储分配的时候,你要填写这么多,只要在后期的使用过程中,不超过自己物理机的存储即可。
网络设置现在我上图的虚拟机设置中选择桥接网络,然后再打开虚拟网络编辑器
点击右下角的更改设置,然后将出现的VMNET0页面的VMNET信息中,勾上桥接模式,确定即可。然后重启虚拟机,即可配置成桥接模式。
在安装系统的过程中,你可能会选择,自己配置磁盘分区,这里介绍一下自己配置过程中遇到的问题,他会有主分区和逻辑分区的选择,
主分区:我们的C盘,也就是默认磁盘,在你刚买电 ...
Goldwasser–Micali Cryptosystem
今天看了一个新的密码系统Goldwasser–Micali Cryptosystem,名字很复杂,原理很简单,记录一下!
Goldwasser–Micali Cryptosystem是基于概率加密,什么是概率加密呢?举个简单的例子,我们通常把加密中,发送方记为Alice,接收方记为Bob, 截取破解方称为Eve.
如果A通过公钥加密系统加密信息,然而只想发送0,1给B,那么他只需要加密两个数0,1
所以E所做的很简单,就是用同样的加密系统加密0, 1,然后和A的密文作比较,对比得出明文。
为了解决问题,Goldwasser and Micali发明了新密码。其实现在于每次传输明文m时选择一个随机字符串r,然后用B的公钥加密(m, r)
r在其所有可能的值之间变化。假如有两个明文m1, m2,其密文范围就为
\begin{align}
e(m_1,\ r) = the\ ciphertext\ for\ plaintext\ m_1\ and\ for\ random\ string\ r,\\
e(m_2,\ r) = the\ ciphertext\ for\ plaintext\ ...
汇编语言学习(2):寄存器指令练习
题目如图所示,下面我们来分析。
CS=2000H, IP = 0000H这是两个16位地址线给出的地址,它们合成20位地址之后,决定了CPU在内存中读取什么指令。
形成20位地址 = CS *16 + IP,所以初始地址为20000H读取第二列之中的B8, 22, 66三个指令,
对应的汇编指令为 mov ax, 6622h
读取之后IP + 3,因为读取了三个指令,下次要读后三个。
所以下一个读取内存对应的地址为CS=2000H, IP = 0003H,合成20位位20003H,读取EA,03,00,00,10五个指令,
对应的汇编指令为 jmp 1000:3这种1000:3表示CS=1000H,IP=0003H
读取之后IP + 5,因为读取了5个指令,但是,读取命令的过程中有对IP的赋值,IP = 0003H,CS = 1000H
所以所以这次再读取指令从CS:IP = 10003H来读取,到了第一列,读取B8,00,00三个指令。
对应的汇编指令为 mov ax 0000注意H大写和小写都表示16进制后缀。
读取之后IP + 3,因为读取了3个指令。
再次读取指令要读取 ...
CISCN2019 华北赛区 Day1 Web5 CyberPunk
[CISCN2019 华北赛区 Day1 Web5]CyberPunk先读取初始页源码
看到file字样想起伪协议
立刻PHP伪协议
1?file=php://filter/convert.base64-encode/resource=index.php
出现BASE64,解码即可
12345678910111213141516<?phpini_set('open_basedir', '/var/www/html/');// $file = $_GET["file"];$file = (isset($_GET['file']) ? $_GET['file'] : null);if (isset($file)){ if (preg_match("/phar|zip|bzip2|zlib|data|input|%00/i",$file)) { echo('no way!'); exit; ...
php学习(4):超全局变量与正则表达式
上次最后学到了超级全局变量,比如:
1234567echo $_SERVER['PHP_SELF'];#返回当前执行脚本文件名。echo $_SERVER['SERVER_ADDR'];#返回主机的IP地址。echo $_SERVER['SERVER_NAME'];#返回主机名(解析过的)echo $_SERVER['REMOTE_ADDR'];#返回浏览页面用户的IP地址
然后来看$_REQUEST[]
下面我们和前端结合一下:
1234<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> NAME:<input type="text" name="fname"> <input type="submit"></form>
然后紧接着写php文 ...
A new cryptosystem based on Lucas functions
基于一道CTF题目,也就是如下。
123456789101112131415161718192021222324252627282930313233343536373839404142import randomfrom Crypto.Util.number import isPrimem, Q = """REDACTED""", 1def genPrimes(size): base = random.getrandbits(size // 2) << size // 2 base = base | (1 << 1023) | (1 << 1022) | 1 while True: temp = base | random.getrandbits(size // 4) if isPrime(temp): p = temp break while True: temp = base | ...
图像处理(11)canny综合算子,边缘获取
12345import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltimport ipykernelfrom IPython.display import Latex
12345678910#下面用这种综合的Canny方法img = cv.imread("def.jpg", cv.IMREAD_GRAYSCALE)v1 = cv.Canny(img, 100, 200)v2 = cv.Canny(img, 50, 100)v3 = cv.Canny(img, 200, 300)res = np.hstack((img, v1, v2, v3))cv.imwrite("canny.jpg", res)cv.imshow("canny", res)cv.waitKey(0)cv.destroyAllWindows() #一次完整的边缘检测过程
图像处理(10)综合各种高级算子
下面来介绍Scharr算子,他和sobel算子类似,只不过矩阵的边缘检测敏感度不同,也就是赋值更敏感。\begin{equation*}\text{Scharr}(x,y) = \frac{3}{2} \left[ \text{Sobel}(x+1,y+1) - \text{Sobel}(x-1,y-1) \right] - \frac{1}{2} \left[ \text{Sobel}(x+1,y-1) - \text{Sobel}(x-1,y+1) \right]\end{equation*}这是什么玩意,通俗的说,就是这样。\begin{equation*}G_x(x) =\begin{bmatrix}-3 & 0 & 3 \-10 & 0 & 10 \-3 & 0 & 3\end{bmatrix} \ , \G_y(x) =\begin{bmatrix}3 & 10 & 3 \0 & 0 & 0 \-3 & -10 & -3\end{bmatrix}\end{equation*}也 ...
图像处理(2)阈值
首先导入库
12import cv2 as cvimport numpy as np
注意,最常见的阈值图片就是二维码。
1#本讲来看阈值,可以用来颠倒二维码噢!
查看两张图片,有颜色读取
12img1 = cv.imread("def.jpg", cv.IMREAD_COLOR)img2 = cv.imread("abc.jpg", cv.IMREAD_COLOR)
导入画图包,这个包在以后会非常常用
12#再来引入一下画图的包import matplotlib.pyplot as plt
1234567891011121314151617ret, thresh1 = cv.threshold(img1, 127, 255, cv.THRESH_BINARY)#只要大于127就设置为255,小于127设置为0,白变黑,黑变白ret, thresh2 = cv.threshold(img1, 127, 255, cv.THRESH_BINARY_INV)#反过来,小于127设置为0,大于127设置为255ret, thresh3 = cv.thr ...
图像处理(1)像素加法
基本读图操作与像素加法首先我们安装好opencv-python,只需要安装最新版本即可。
1import cv2 as cv
不管是什么版本,在导入的时候,都用上述命令即可,用cv便于书写。
1import matplotlib.pyplot as plt
导入绘图库,将会非常重要。
1img_cat = cv.imread("def.jpg", 1);
1表示以彩色方式读取图像,0表示以灰度模式读取图像,也就是单通道图像,只需要一个矩阵就能表示。
1img_dog = cv.imread("anc.jpg", 1)
加10创建了一个新图像,从原始图像中复制而来,原始图像中每个像素都加10,
12img_cat2 = img_cat + 10;img_cat2[:5, :, 0]#读取前五行和所有列,灰度图像
切片处理中[:5]表示仅仅处理前五行像素,:表示处理所有的列,而0表示通道0,在cv中通道顺序是BGR图像,所以是蓝色。
array([[ 0, 147, 156, ..., 210, 5, 166],
[248, 23 ...



