当前位置:首页 » 编程语言 » python安装pycrypto

python安装pycrypto

发布时间: 2023-08-08 03:37:06

1. 如何为mac python安装pycrypto

解决方案一:安装Vs2008(实测)
完全的无脑流,安装完问题直接解决。
解决方案二:安装Vs2010(未测试)
上次在电脑上装个Vs2010并不能像 vs2008那样直接解决问题,从网上找到如下解决方案,不知是否可行。
打开“<python安装目录>\Lib\distutils\msvc9compiler.py”
找到 toolskey = “VS%0.f0COMNTOOLS” % version,直接修改为 toolskey = ”VS100COMNTOOLS”
解决方案三:安装MinGW(实测)
1、下载安装MinGW,下载地址为:http://sourceforge.net/projects/mingw/files/latest/download?source=files
2、在MinGW的安装目录下找到bin文件夹,找到mingw32-make.exe,复制一份更名为make.exe
3、把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;
4、在<python安装目录>\distutils增加文件distutils.cfg,在文件里输入
[build]
compiler=mingw32
保存;
5、执行原先的模块安装,发现还是报错,报错内容为:error: command ’gcc’ failed: No such file or directory 解决方案是将D:\MinGW\lib再添加到PATH中。
6、如果安装过程中出现 error: Could not find ‘openssl.exe’ 则直接到http://pypi.python.org/pypi/pyOpenSSL/0.13 下载安装即可。
再次执行时安装模块时,发现如下错误:
D:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall “-ID:\Program Files\Python27\inc
lude” “-ID:\Program Files\Python27\include” “-ID:\Program Files\Python27\PC” -c
../libdasm.c -o build\temp.win32-2.7\Release\..\libdasm.o
cc1.exe: error:unrecognized command line option ‘-mno-cygwin’
error: command ‘gcc’ failed with exit status 1
原因是gcc 4.6.x 以后不再接受-mno-cygwin为了解决这个问题需要修改<python安装目录>\distutils\cygwinccompiler.py文件。找到:
self.set_executables(compiler='gcc -mno-cygwin -O -Wall',
compiler_so='gcc -mno-cygwin -mdll -O -Wall',
compiler_cxx='g++ -mno-cygwin -O -Wall',
linker_exe='gcc',
linker_so='%s -mno-cygwin %s %s'
% (self.linker_dll, shared_option,
entry_point))
修改为:
self.set_executables(compiler='gcc -O -Wall',
compiler_so='gcc -mdll -O -Wall',
compiler_cxx='g++ -mno-cygwin -O -Wall',
linker_exe='gcc',
linker_so='%s -mno-cygwin %s %s'
% (self.linker_dll, shared_option,
entry_point))
讲了三个解决方案,安装visualstudio太庞大的,没有试,于是就尝试第三种方法。其中openssl.exe的错误没有碰到,应该是已经有了,而distutils.cfg文件的目录在python2.7下面有点不一样,在Python27\Lib\distutils下面。一直到最后个修改项,最终错误是:
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PyInt_AsUnsignedLongLongMask’
没有解决。
中间有个警告,在cygwin中使用dos style的path,设置path CYGWIN=nodosfilewarning 来规避
cygwin warning:
MS-DOS style path detected: C:\cygwin\home\ADMINI~1\hadoop\/build/native
Preferred POSIX equivalent is: /home/ADMINI~1/hadoop/build/native
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
12/02/13 10:34:53 INFO namenode.NameNode: STARTUP_MSG:
python setup.py install build --compiler=mingw32
这个命令尝试也不行。
在这个url:http://stackoverflow.com/questions/1687283/why-cant-i-just-install-the-pycrypto,国际友人介绍用PyPM来安装,由于要另外安装工具,没有尝试:
You may use PyPM to install (pre-built binary package of) pycrypto:
C:> pypm install pycrypto
Ready to perform these actions:
The following packages will be installed:
pycrypto-2.0.1
Get: [pypm.activestate.com] pycrypto 2.0.1-1
Installing pycrypto-2.0.1
PyPM can be installed by installing ActivePython.http://www.activestate.com/activepython/
后来在这里http://lili-xiang.iteye.com/blog/1796640,看到有预编译好的版本用来安装,在地址http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win-amd64-py3.2.exe下载PyCrypto 2.6 for Python 3.2 64bit,随后安装成功,可以在Komodo IDE 7中使用了。测试代码是这里的:http://ddkangfu.blog.51cto.com/311989/484801
但是例子的代码是跑不起来的,因为aes加密中,cbc模式下是还有个iv参数的,修改成这样
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Crypto.Cipher import AES
PADDING = '\0'
pad_it = lambda s: s+(16 - len(s)%16)*PADDING
if __name__ == "__main__":
key = '1234567890123456'
data = 'qwertyuiopasdfgh'
obj = AES.new(key, AES.MODE_CBC, data)
#obj = AES.new(key, AES.MODE_ECB)
crypt = obj.encrypt(data)
print crypt
#obj2 = AES.new(key, AES.MODE_ECB)
obj2 = AES.new(key, AES.MODE_CBC, data)
recovery = obj2.decrypt(crypt)
print recovery
才可以正常运行,如果使用ECB模式,就不用最后一个iv参数的。这里使用加密源data作为iv参数是没有意思的,正式使用的时候肯定会另外定义的字符串,记得iv长度要是16位的倍数。代码里还要注意obj2,不能重复使用第一个obj,在加密过程中obj已经改变了,如果不充生成obj2,是无法解密成功的。

2. python 利用Crypto进行ECB 加密

windows下使用AES时安装pycryptodome 模块,pip install pycryptodome

linux 下使用AES时安装pycrypto模块,pip install pycrypto

```

from Crypto.Cipherimport AES

from binasciiimport b2a_hex, a2b_hex

from Cryptoimport Random

import base64

import json

class AesEncry(object):

        # aes秘钥 ,可根据自身需要手动生成

     宴旁   key ="aes_keysaes_keysaes_keys"  

        def encrypt(self, data):

                data = json.mps(data)

                mode = AES.MODE_ECB

                padding =lambda s: s + (16 -len(s) %16) *chr(16 -len(s) %16)

                cryptos = AES.new(self.key.encode("utf-8"), mode)

                cipher_text = cryptos.encrypt(padding(data).encode("utf-8"))

                return base64.b64encode(cipher_text).decode("utf-8")

        def decrypt(self, data):

                cryptos = AES.new(self.key.encode("型祥握utf-8"), AES.MODE_ECB)

                decrpytBytes = base64.b64decode(data)

         卜庆       meg = cryptos.decrypt(decrpytBytes).decode('utf-8')

                return meg[:-ord(meg[-1])]

aes_encry_util = AesEncry()

#明文

data ="mypwd_test"

#加密

encry_data = aes_encry_util.encrypt(data)

print(encry_data)

# 对密文进行解密

decry_data = aes_encry_util.decrypt(encry_data)

print(decry_data)

```

如上便完成了利用python进行AES的ECB加密

3. python pycrypto 怎么安装

1. windwos系统下

由于需要编译源码,需要安装相应的编译器

Python 2.7 : Microsoft Visual C++ Compiler for Python 2.7 (网址:aka.ms/vcpython27)

sudoapt-getinstall-ypython-pycryptopp

4. python 预编译pycrypto怎么安装

进入Python官网(www.python.org),把鼠标移动到“download"按钮上,会出现选择版本界面,可以选择2.x或者3.x的,进入下载页面,点击安装文件进行下载,然后双击下载得到的安装文件即可完成安装。

5. python3 安装Crypto.Cipher import AES

问题背景:

m3u8文件加密时,使用“from Crypto.Cipher import AES”相关函败乎数解密:

#EXT-X-KEY 记录了加密的方式,一般是AES-128以及加密的KEY信息

出现问题:

from Crypto.Cipher import AES

pip install Crypto

出错

解决办法:

安装crypto库(首字母c是小写)

pip install crypto

进入python的库管理位置,site-packages文件夹,找到crypto,将其首字母c改为大写

判断是否解决的方式:

from Crypto.Cipher import AES

不会报错,说明成功。

备注:

如果在C:\Python36\Lib\site-packages\Crypto目录下没有找到:\Cipher目录。

可以尝试安装pycryptodome库察氏悉 或 pycrypto库:

pip install pycryptodome

pip install pycrypto (安装这个库,基本会失败核迹,会报错)

6. centos中pycrypto模块的安装

如果已经成功安装pycrypto依然找不到Crypto模块,那么就将Python安装路径下的C:Python27Libsite-packages的crypto文件夹改为大写即可!!

热点内容
安卓如何设置桌面返回键 发布:2025-02-06 13:58:15 浏览:48
bi可视化php 发布:2025-02-06 13:50:15 浏览:931
shell写脚本文件 发布:2025-02-06 13:47:32 浏览:231
健身器材脚本 发布:2025-02-06 13:46:36 浏览:856
怎么从手机里卸载存储卡 发布:2025-02-06 13:35:04 浏览:644
诛仙青云志2ftp 发布:2025-02-06 13:34:48 浏览:34
mill91编程 发布:2025-02-06 13:10:27 浏览:294
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:482
php查询结果数组 发布:2025-02-06 12:31:05 浏览:717
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:498