轉載自:https://www.cnblogs.com/pcat/p/7225782.html
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
目前libnum暫時只支持python2,若是用python3安裝會因爲沒有reduce、xrange而報錯。
0x2 常用的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)
0x3 質數&因數分解
生成質數:
print libnum.generate_prime(1024)
因數分解:
print libnum.factorize(1024)