标签: pycrypto

使用PyCrypto AES 256加密和解密

我正在尝试使用PyCrypto构建两个函数,它们接受两个参数:消息和密钥,然后加密/解密消息.

我在网上发现了几个链接来帮助我,但每个链接都有缺陷:

在codekoala上的这个使用os.urandom,PyCrypto不鼓励这样做.

而且,我给函数的关键不能保证具有预期的确切长度.我该怎么做才能实现这一目标?

此外,还有几种模式,建议使用哪种模式?我不知道该用什么:/

最后,究竟是什么?我可以为加密和解密提供不同的IV,还是会以不同的结果返回?

这是我到目前为止所做的:

from Crypto import Random
from Crypto.Cipher import AES
import base64

BLOCK_SIZE=32

def encrypt(message, passphrase):
    # passphrase MUST be 16, 24 or 32 bytes long, how can I do that ?
    IV = Random.new().read(BLOCK_SIZE)
    aes = AES.new(passphrase, AES.MODE_CFB, IV)
    return base64.b64encode(aes.encrypt(message))

def decrypt(encrypted, passphrase):
    IV = Random.new().read(BLOCK_SIZE)
    aes = AES.new(passphrase, AES.MODE_CFB, IV)
    return aes.decrypt(base64.b64decode(encrypted))
Run Code Online (Sandbox Code Playgroud)

python encryption padding pycrypto initialization-vector

153
推荐指数
9
解决办法
35万
查看次数

如何在Windows上安装PyCrypto?

我已经阅读了所有其他谷歌来源和SO线程,没有任何工作.

Python 2.7.3 32bit安装上Windows 7 64bit.下载,解压缩,然后尝试安装PyCrypto结果"Unable to find vcvarsall.bat".

所以我安装MinGW并在安装行上将其作为首选编译器.但后来我得到了错误"RuntimeError: chmod error".

我怎么在世界上绕过这个?我尝试过使用pip,它给出了相同的结果.我找到了一个预先构建的PyCrypto 2.3二进制文件并安装了它,但它在系统上找不到(不工作).

有任何想法吗?

python windows pycrypto python-2.7

137
推荐指数
11
解决办法
27万
查看次数

ImportError:没有名为Crypto.Cipher的模块

当我尝试运行app.py(Python 3.3,PyCrypto 2.6)时,我的virtualenv不断返回上面列出的错误.我的导入声明是公正的from Crypto.Cipher import AES.我寻找重复,你可能会说有一些,但我尝试了解决方案(虽然大多数甚至不是解决方案),没有任何工作.

您可以在下面看到PyCrypto的文件:

python pip virtualenv easy-install pycrypto

110
推荐指数
15
解决办法
33万
查看次数

在Ubuntu上安装PyCrypto - 构建时发生致命错误

看过其他类似的线程后,我仍然无法运行pycrypto.

我正试图让它在我的Ubuntu笔记本电脑上工作 - 但我无法在我的Windows PC上管理它.

我下载了pycrypto-2.6,将其解压缩并运行

    python setup.py build
Run Code Online (Sandbox Code Playgroud)

但后来发生了这件事

warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Hash._MD2' extension
gcc -pthread -fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes -fPIC -std=c99 -O3 - fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.linux-i686-?2.7/src/MD2.o
src/MD2.c:31:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助.

python pycrypto

62
推荐指数
3
解决办法
7万
查看次数

如何在Python中解密OpenSSL AES加密文件?

OpenSSL为AES加密提供了一种流行的(但不安全 - 见下文!)命令行界面:

openssl aes-256-cbc -salt -in filename -out filename.enc
Run Code Online (Sandbox Code Playgroud)

Python以PyCrypto包的形式支持AES,但它只提供工具.如何使用Python/PyCrypto解密使用OpenSSL加密的文件?

注意

此问题过去也涉及使用相同方案的Python加密.我已经删除了那部分以阻止任何人使用它.不要以这种方式加密任何数据,因为它不符合今天的标准.你应该只使用解密,除了后向兼容性之外没有其他原因,即当你别无选择时.想要加密?如果可能的话,使用NaCl/libsodium.

python encryption openssl aes pycrypto

52
推荐指数
3
解决办法
9万
查看次数

Pycrypto安装致命错误:找不到gmp.h文件

似乎有很多人遇到过类似的问题,然而,经过多次搜索,我找不到适用于我的特定架构的解决方案.我正在尝试安装Pycrypto(作为Fabric的子公司)无济于事.

我正在通过Homebrew运行Mac 10.8.2,python 2.7.3,以及使用pip或easy_install运行XCode 4.6(我已经尝试过两者).据我所知,问题可能与我的XCode版本有关,也可能是因为我的库.已安装XCode的命令行工具,我已尝试放入setenv ARCHFLAGS "-arch i386 -arch x86_64"我的.cshrc文件.我也试过了ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer.至于图书馆,我尝试通过它们进行链接ln -s /usr/local/lib/libgmp.dylib /usr/lib/libgmp.dylib- 但这也没有用.

无论我尝试什么角度,错误总是相同的(见下文).任何和所有的帮助将不胜感激.

/usr/local/share/python% pip install pycrypto
Downloading/unpacking pycrypto
  Running setup.py egg_info for package pycrypto

Installing collected packages: pycrypto
  Running setup.py install for pycrypto
    building 'Crypto.PublicKey._fastmath' extension
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -pipe -mmacosx-version-min=10.8 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict-prototypes -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_fastmath.c -o build/temp.macosx-10.8-intel-2.7/src/_fastmath.o
src/_fastmath.c:36:11: fatal error: 'gmp.h' …
Run Code Online (Sandbox Code Playgroud)

python gmp pycrypto osx-mountain-lion

35
推荐指数
3
解决办法
2万
查看次数

Microsoft Windows Python-3.6 PyCrypto安装错误

pip install pycrypto 使用python3.5.2可以正常工作,但是由于python3.6而失败并出现以下错误:

inttypes.h(26):错误C2061:语法错误:标识符'intmax_t'

windows visual-studio pycrypto python-3.6

34
推荐指数
5
解决办法
3万
查看次数

如何使用warnings.filterwarnings抑制第三方警告

我在我的python代码中使用Paramiko(对于sftp).除了我每次导入或调用paramiko函数时,一切正常.此警告将显示:

C:\Python26\lib\site-packages\Crypto\Util\randpool.py:40: RandomPool_Deprecation
Warning: This application uses RandomPool, which is BROKEN in older releases.  S
ee http://www.pycrypto.org/randpool-broken
  RandomPool_DeprecationWarning)
Run Code Online (Sandbox Code Playgroud)

我知道这与Paramiko正在使用PyCrypto的一些不推荐的功能这一事实有关.

我的问题是,有没有办法以编程方式抑制此警告?我试过这个:

warnings.filterwarnings(action='ignore', \
category=DeprecationWarning, module='paramiko')
Run Code Online (Sandbox Code Playgroud)

甚至这个:

warnings.filterwarnings(action='ignore', \
category=DeprecationWarning, module='randpool')
Run Code Online (Sandbox Code Playgroud)

在'import paramiko'语句之前和paramiko特定函数调用之前,但没有任何作用.无论如何,这个警告都会出现.如果有帮助,这是第三方库中打印警告的代码:

在randpool.py中:

from Crypto.pct_warnings import RandomPool_DeprecationWarning
import Crypto.Random
import warnings

class RandomPool:
    """Deprecated.  Use Random.new() instead.

    See http://www.pycrypto.org/randpool-broken
    """
    def __init__(self, numbytes = 160, cipher=None, hash=None, file=None):
        warnings.warn("This application uses RandomPool, which is BROKEN in older releases.  See http://www.pycrypto.org/randpool-broken",
            RandomPool_DeprecationWarning)
Run Code Online (Sandbox Code Playgroud)

如果您知道解决方法,请帮我关闭此警告.

python paramiko suppress-warnings pycrypto

33
推荐指数
4
解决办法
2万
查看次数

PyCrypto未完全安装在Windows XP上

python setup.py install在Windows XP控制台中运行,它报告如下:

running install
running build
running build_py
running build_ext
warning: GMP library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Random.OSRNG.winrandom' extension
error: None
Run Code Online (Sandbox Code Playgroud)

当我尝试运行脚本时import Crypto.Cipher.AES,它不起作用,说:

ImportError: cannot import name AES
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

python windows pycrypto

29
推荐指数
1
解决办法
6万
查看次数

使用pip在Mac OS X上安装pycrypto时出现Broken Pipe错误

我试图通过pip在OS X上安装pycrypto(版本2.3).当编译器尝试编译MD2.c时,我收到"Broken pipe"错误.使用easy_install时出现非常类似的错误.

这是我得到的错误:

bash-3.2$ 
bash-3.2$ sudo pip install pycrypto
Password:
Downloading/unpacking pycrypto
  Running setup.py egg_info for package pycrypto
Installing collected packages: pycrypto
  Running setup.py install for pycrypto
    warning: GMP library not found; Not building Crypto.PublicKey._fastmath.
    building 'Crypto.Hash.MD2' extension
    gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -fwrapv -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/MD2.c -o build/temp.macosx-10.6-universal-2.6/src/MD2.o
    /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed
    Installed assemblers are:
    /usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 …
Run Code Online (Sandbox Code Playgroud)

python macos gcc pip pycrypto

29
推荐指数
1
解决办法
9009
查看次数