区块链原理与技术笔记
区块链密码学基础
杂凑函数
关于单向性的描述:
任给y,由y=H(x)计算x困难
不严谨,因为xxx的选择会出现特殊情况: H(1),H(0)H(1),H(0)H(1),H(0)等, 严格定义为
Pr[x←XR,y←H(x),x′←A(y):H(x′)=y]≤neg(n)Pr[x\leftarrow X_R,y\leftarrow H(x),x'\leftarrow A(y):H(x')=y] \leq neg(n)
Pr[x←XR,y←H(x),x′←A(y):H(x′)=y]≤neg(n)
就是说Challenger在XRX_RXR集合中均匀随机的选择xxx,计算H(x)=yH(x)=yH(x)=y,敌手Adversary由yyy计算出x′x'x′,H(x′)=yH(x')=yH(x′)=y的概率极小.
零知识证明
零知识证明指证明者P能在不向验证者V提供任何有用信息的情况下,使验证者相信某个论断是正确的。
数学表示
证明者P要证明的关系通常表示为一种NP关系L,对于某一字符串xxx,证明者P知道对应的证据www,使得x∈Lx\ ...
【Go学习笔记】
Go语言基础
常量
设置多个常量:
const ( Cyan = 0 Black = 1 White = 2)
go语言的预定义常量:true、false、iota
iota 是一个可以被编译器修改的常量,在 const 关键字出现时被重置为 0,在下一个 const 出现之前,每出现一次 iota,其所代表的数字自动加 1。下面通过一个例子讲解 iota 的用法:
const ( a = iota //a == 0 b = iota //b ==1 c = iota //c == 2)const d = iota //d==0,因为const的出现,iota被重置为0
变量
变量声明var或:=,二者只用一个
Go 声明和初始化变量的各种方法:
var a intvar b stringvar c float64var d [5] int //数组var e [] int //数组切片var f * int //正确var v1 int = 5 //正确var v2 = 5 //正确,编译器自动推导出V2类型v3 := 5 ...
区块链实验
本学期一门实验课,以此记录
week1
实验1 入门练习
实验1要求三个不同正整数的最小公倍数
实验流程
辗转相除法构造求解最大公约数的函数
最小公倍数即乘积除以最大公约数
先求任意两数的最小公倍数再与第三个数求最小公倍数
实验结果
实验代码
package mainimport ( "fmt")func gcd(x, y int) int { tmp := x % y if tmp > 0 { return gcd(y, tmp) } else { return y }}func lcm(x, y int) int { return x * y / gcd(x, y)}func main() { var a int var b int var c int fmt.Println("Please input three numbers:") fmt.Scanf("%d %d %d", &a, &am ...
信号与系统第一次实验
实验内容
(1) f(t)=(2+e−t)u(t+1)f(t)=\left(2+e^{-t}\right) u(t+1)f(t)=(2+e−t)u(t+1), (−2,4)(-2,4)(−2,4) 内
代码
引入预习手册中的Heaviside函数,直接编写函数即可
cleart= -2:0.001:4;k=1;a=-1;f=(2+k*exp(a*t)).*Heaviside(t+1);plot(t,f);grid;xlabel('t');ylabel('f(t)');title('f(t)=(2+e^-t)u(t+1)');
仿真图
(2)$ f(t)=\cos (t) u(\sin (t)+0.3)$, (−10,10)(-10,10)(−10,10) 内
代码
cleart= -10:0.001:10;f=cos(t).*Heaviside(sin(t)+0.3);plot(t,f);grid;xlabel('t');ylabel('f(t)');title('f(t ...
DeelMind小白网安入门
HTML潜在漏洞
纯HTML基本没有漏洞
Iframe clickjack
CSS和潜在漏洞
纯CSS漏洞很少
https://github.com/maxchehab/CSS-Keylogging
Javascript
<学会Javascript>
PHP
<学会PHP>
SQL注入详解和简单绕过原理
<学会数据库>
无题
算法原理
模 pq\mathrm{pq}pq 时高次同余方程的求解
假设 p\mathrm{p}p 和 q\mathrm{q}q 是不同的素数, 并假设 e≥1e \geq 1e≥1, 满足gcd(e,(p−1)(q−1))=1\operatorname{gcd}(e,(p-1)(q-1))=1
gcd(e,(p−1)(q−1))=1
则 eee 模 (p−1)(q−1)(p-1)(q-1)(p−1)(q−1) 存在逆元, 即de≡1( mod (p−1)(q−1))d e \equiv 1(\bmod (p-1)(q-1))
de≡1(mod(p−1)(q−1))
则同余方程xe≡c( mod pq)x^{e} \equiv c(\bmod p q)
xe≡c(modpq)
有唯一解 x≡xed≡cd( mod pq)x \equiv x^{ed} \equiv c^{d}(\bmod p q)x≡xed≡cd(modpq)
安全性分析
已知 p、qp 、qp、q 时该方程易解,敌手可以计算欧拉函数φ(n)=(p−1)(q−1)\varphi(n)=(p-1)(q-1)φ(n)= ...
古典密码学
主要记录密码编码学与网络安全-第七版的部分课后习题详解
仿射 Caesar 密码的密钥[a,b][a,b][a,b]共有 311 种合法取值
==12×26−112\times 26-112×26−1种,需要去除a=1,b=0a=1,b=0a=1,b=0的平凡解==
【证明题】对于乘法代替密码,当且仅当𝑔𝑐𝑑(𝑘,𝑝)=1𝑔𝑐𝑑(𝑘, 𝑝) = 1gcd(k,p)=1时,𝐸𝑘𝐸_𝑘Ek才是一一映射。
1)==(必要性)⇒\Rightarrow⇒==
若𝑔𝑐𝑑(𝑘,𝑝)=1𝑔𝑐𝑑(𝑘, 𝑝) = 1gcd(k,p)=1,下证EkE_kEk为一一映射:
单射:对任意i,j,k∈Zp,i≠ji,j,k \in Z_p,i\neq ji,j,k∈Zp,i=j都有jk≢ik ( mod p)jk \not\equiv ik\ (\bmod p)jk≡ik (modp)否则由消去律有x1=x2x_1=x_2x1=x2,与x1,x2x_1,x_2x1,x2的选取不符,故EkE_kEk为单射;
满射:对任意y∈Zpy \in ...
CTF-web-信息泄露
Git泄露
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。
log
利用工具-GitHack
git clone git://github.com/BugScanTeam/GitHack.git
进入GitHck文件夹,使用python2
python2 GitHack.py http://challenge-c1bea46c13604f27.sandbox.ctfhub.com:10800/.git/
还原后的文件在dist/目录下,进入
cd \dist\challenge-55b6c65232b6b6ab.sandbox.ctfhub.com_10080\
在这里检查git提交历史记录log,git log查看日志,可以看到add flag后又remove,所以检查当前版本与上一个版本的区别git diff 版本号
找到flag
Stash
git stash用于保存本地修改,将代码切换到head提交上
用githack扫描网址,进入产生的文件夹中,依次执行
git stash list //查看当 ...
Kali更新步骤
更改更新源(用哪个把其他注释掉)
vi /etc/apt/sources.list
使用vim,按i插入,复制源粘贴,按Esc,输入:q保存并退出,(需在root模式下进行su root)
#中科大kali源deb http://mirrors.ustc.edu.cn/kali kali main non-free contribdeb-src http://mirrors.ustc.edu.cn/kali kali main non-free contribdeb http://mirrors.ustc.edu.cn/kali-security kali/updates main contrib non-free#新加坡kali源deb http://mirror.nus.edu.sg/kali/kali/ kali main non-free contribdeb-src http://mirror.nus.edu.sg/kali/kali/ kali main non-free contribdeb http://security.kali.org/kali-security k ...
【PHP学习笔记】
$_SERVER[“PHP_SELF”]是一种超全局变量,返回当前执行脚本的文件名。
“test_form.php” 的页面中有如下表单:
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
用户输入http://www.example.com/test_form.php转化为:
<form method="post" action="test_form.php">
http://www.example.com/test_form.php/**%22%3E%3C**script **%3**Ealer('hacked')**%3C**/script **%3E**则转为:
<form method="post" action="test_form.php"/><script>alert('hac ...