0%

crypto总结

常见编解码

  • Base64,包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/;
  • Base32,只有大写字母(A-Z)和数字234567;
  • Base16,只有16进制的数据,其范围是数字(0-9),字母(ABCDEF)。
  • brain fuck:仅6个字符组成
  • js fuck:可以直接扔进console执行,或者先解码
  • Ook
  • aaencode:长得像颜文字
  • 与佛论禅:一堆长得不正常的汉字
  • 社会主义核心价值观
  • 摩斯电码
  • 盲文
  • 中文乱码恢复:乱码恢复 (mytju.com)
  • 词频分析:quipquip

古典密码

移位(变异凯撒),栅栏fence,

对称加密

DES

AES

非对称加密

RSA(RSA Tool2

  • 根据n求p和q(大数分解,yafu
  • 给出p,q,d,c,求明文
  • 共模攻击:给出两个大数n,
  • 根据公钥文件求解n,e,进一步生成私钥文件并解密

工具

yafu:大整数分解

ToolsFx:各种加解密、编码、设置还有图片

john:爆破hash

quipquip.com:词频分析暴力破解古典密码

gmpy2用法

1
2
3
4
5
6
7
模幂运算:gmpy2.powmod(a,n,p)   #对于给定的整数p,n,a,计算aⁿ mod p
对x开n次方根:gmpy2.iroot(x,n)
欧几里得算法:gmpy2.gcd(a,b)#求得a,b的最大公约数;gmpy2.lcm(a,b)#求得最小公倍数
扩展欧几里得:gmpy2.gcdext(e1,e2)#求式子e1*x+e2*y=gcd(e1,e2)。在RSA加密算法中利用该公式来求e的逆元d,由于实际上公钥e的选取需要保证gcd(e,ψ(n))=1,所以在这种情况下式子的右边就是1,且通常用下面这个公式来求逆元。
模逆运算:gmpy2.invert(a,c)#对a,求b,使得a*b=1(mod c)
素数检测:gmpy2.is_prime()
a=gmpy2.mpz(x) 可以为变量a赋予一个高精度的大整数(长度可达50位)