python libnum库安装使用方法
libnum库是一个关于各种数学运算的函数库,它包含common maths、modular、modular squre roots、primes、factorization、ECC、converting、stuff等方面的函数,个人觉得结合gmpy2库、PyCrypto库一起来使用会使计算变得非常简便。
------------------------------------------------------------------------
0x1 安装
git clone https://github.com/hellman/libnum cd libnum python setup.py install
-= 2018.01补充 =-
原版的libnum只支持python2,若是用python3安装会因为没有reduce、xrange而报错。
-= 2020.05补充 =-
python 3 compatibility:
git clone https://github.com/warnerjon12/libnum cd libnum python setup.py install
0x2 坑爹的pip安装
Pypi上的libnum介绍是python3 comptaible fork for libnum - Some number theoretic functions.
如果你使用pip安装:
pip install libnum
这个版本只能在py3中使用,但能在py2顺利安装,一使用就会报错,因为其strings.py的写法只适应于py3。
0x3 常用的Converting
数字型(不论是十六进制还是十进制)与字符串之间的转换:
import libnum s="flag{pcat}" print libnum.s2n(s)
import libnum n=0x666c61677b706361747d print libnum.n2s(n) #这个转换不用在意十六进制的位数是否为偶数
二进制与字符串之间的转换:
import libnum b='01110000011000110110000101110100' print libnum.b2s(b) #二进制的位数最好是8的倍数
import libnum s='pcat' print libnum.s2b(s)
数字转二进制串,前面补0:
from libnum import * n=0xfff print s2b(n2s(n))
0x4 质数&因数分解
生成质数:
print libnum.generate_prime(1024)
因数分解:
print libnum.factorize(1024)
0x5 其他的
等pcat有空再更新。