最近练习ctf密码学部分的题目会经常用到gmpy2这个Python 扩展库。它的前身是gmpy,经过其作者的调整和封装,使得gmpy2的使用大大简化。GMP(GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库),它是一个开源的高精度运算库,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法、大素数生成、欧几里德算法、求域中元素的逆、Jacobi符号、legendre符号等。
官方文档:https://gmpy2.readthedocs.io/en/latest/
1、windows上安装gmpy2
在windows上直接安装wheel文件就方便多了。
https://pypi.org/project/gmpy2/#files
这里面有python2.6、2.7、3.2、3.3、3.4版本的wheel文件,下载后用pip安装即可。(暂时还找不到3.5版本)
后来也发现有一个gmpy2-2.0.8.win-amd64-py2.7.exe文件。
-= 2018.01补充 =-
现在gmpy2 2.1.0a1里可以支持3.4+
2、linux上安装gmpy2
gmpy2是依赖GMP、MPFR、MPC三个库,故此在linux上安装前得先安装这3个库。
为了后续安装的方便,先建立2个文件夹。
mkdir -p $HOME/src
mkdir -p $HOME/static
测试有没有安装m4模块:
man m4
如果出现No manual entry for m4,就说明没有安装m4模块。
m4的安装过程如下:
v=1.4.18
cd $HOME/src
wget http://ftp.gnu.org/gnu/m4/m4-${
v}.tar.gz
tar xf m4-${
v}.tar.gz && cd m4-${
v}
./configure -prefix=/usr/local
make && make check &