起因
python自带的rsa库不能够适用于生产环境,必须安装M2Crypto库。
但M2Crypto的安装并不简单,需要一些库的依赖。
安装步骤
swig下载:
下载版本:SWIG Version 3.0.4(注意这里必须是3.0.4,否则会报错)
1 | wget http://jaist.dl.sourceforge.net/project/swig/swig/swig-3.0.4/swig-3.0.4.tar.gz |
如果出现以下错误:
1 | configure: error: |
则需要安装pcre。
pcre安装:
1 | wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz |
接着继续我们的swig安装
1 | ./configure |
执行swig后若提示:未发现libpcre.so.1,则需要查找后,建立连接 ln -s 源文件 链接名称
安装 openssl
1 | wget https://www.openssl.org/source/openssl-1.0.1m.tar.gz |
注意我安装的是1.0.1m,我尝试过去安装0.9.8zd版本的,是会报错的:
1 | /usr/bin/ld: libcrypto.a(e_4758cca.o): relocation R_x86_64_32 against `.data` can not be used when making a shared object; recompile with -fPIC libcrypto.a(e_4758cca.o): error adding symbols 错误的值 |
网上的各种例子都会让你命令行参数加什么fPIC,但是并没什么用。
安装 M2Crypto
1 | wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz |
验证安装成功
打开python解释器,执行如下命令
1 | import M2Crypto |
如果报类似如下错误:
1 | /usr/lib/python2.7/dist-packages/pkg_resources.py:1031: UserWarning:... |
则需要减去一些权限:
1 | chmod g-wx, o-wx /home/xxx/.python-eggs |
如果bash报错说不支持上面的命令,可以分开分别执行
1 | chmod g-wx /home/xxx/.python-eggs |
打开openssl,执行如下两条命令,来生成公钥和私钥:
1 | genrsa -out rsa_private_key.pem 1024 |
运行如下脚本,验证一切安装ok
1 | # -- coding: utf-8 -- |