Crypto
CTF-crypto
Rashu99
记录学习的番茄派
展开
-
2古典密码
古典密码移位密码曲路密码云影密码栅栏密码替代密码1、单表**凯撒****ROT13**Atbash Cipher单表替代培根密码猪圈密码跳舞的小人仿射密码2、多表移位密码例题 m=flag k=3124明文 1234密文 3124flaglafg加密def shift_encrypt(m,k): l=len(k) c="" for i in range(0,len(m),l): tmp_c=[""]*l if i+l>len(m): tmp_m=m[i:]原创 2020-08-16 20:41:27 · 569 阅读 · 0 评论 -
1编码
编码传输前将信息编码,传输后再解码hex每个字符的ASCII码的十六进制字符编码成16进制转10进制即字符串转十进制s="flag"t=s.encode("hex")print int(t,16)单字符最快转换用ordprint int("a".encode("hex"),16)print ord("a")去掉0x和末尾的Lnum=584734024210391580014049650557280915516226103165print hex(num)[2:-1].deco原创 2020-08-06 23:08:18 · 410 阅读 · 0 评论 -
哈希碰撞
哈希1、任意长度的输入,通过哈希算法,得到固定长度的输出2、不同的输入会哈希成相同的输出3、不能从输出倒推输入(但是目前md5可以破解)哈希函数有md5、sha1、sha256哈希碰撞import hashlibprint hashlib.sha256("hello").hexdigest()print hashlib.md5("hello").hexdigest()print hashlib.sha1("hello").hexdigest()输出王小云院士提出的哈希函数碰撞攻原创 2020-07-11 12:03:35 · 1956 阅读 · 0 评论 -
RSA学习2 —— 公钥密码
小指数明文爆破如果B使用的e很小,如e=3,且A传给B的明文也很小,如几个字节那么,c = m^ e mod n 如果n很大 则可能 c = m^ e 即 c=m^ 3 即对c开三次根号就可以得到m如果m的三次方大于n但是没有超过太多即 k*n <m^3 < (k+1)*n且k是可以爆破的大小k*n - c = m^3n=4796670818328963996250136316376186439945424169101446717280565851836842313516原创 2020-07-10 14:31:00 · 2163 阅读 · 0 评论 -
RSA 学习记录
A向B广播一条消息:B,我有要事汇报B立即生成两个大素数,p,q 算出n=p*q并取一个素数 e=65537广播 n,e 即加密密钥A收到了n,e 攻击者也收到了n,eA立即将情报通过hex和padding 转换成一串数字 m算m^e mod n = c 即 c = pow(m,e,n)此时 A手上有 n,e,m,c 想把c传给B广播通信出去 B 收到了c 攻击者收到了c目前A 有 n,e,m,cB 有 p,q,n,e,c攻击者 有 n,e,cB 比攻击者多了原创 2020-07-04 21:22:57 · 1087 阅读 · 0 评论