标签: pycrypto

如何读取PEM + PKCS#1格式的RSA公钥

我有一个PEM格式的RSA公钥+ PKCS#1(我猜):

-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAJNrHWRFgWLqgzSmLBq2G89exgi/Jk1NWhbFB9gHc9MLORmP3BOCJS9k
onzT/+Dk1hdZf00JGgZeuJGoXK9PX3CIKQKRQRHpi5e1vmOCrmHN5VMOxGO4d+zn
JDEbNHODZR4HzsSdpQ9SGMSx7raJJedEIbr0IP6DgnWgiA7R1mUdAgMBAAE=
-----END RSA PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

我想在Python中获取其ASN1编码版本的SHA1摘要.第一步应该是读取此键,但我没有在PyCrypto中执行此操作:

>> from Crypto.PublicKey import RSA
>> RSA.importKey(my_key)
ValueError: RSA key format is not supported
Run Code Online (Sandbox Code Playgroud)

PyCrypto文档说支持PEM + PKCS#1,所以我很困惑.我也试过M2Crypto,但事实证明M2Crypto不支持PKCS#1但只支持X.509.

python cryptography key-management x509 pycrypto

28
推荐指数
1
解决办法
3万
查看次数

使用pycrypto时没有名为'winrandom'的模块

我花了两天时间尝试为Paramiko模块安装pyCrypto.

所以,我遇到的第一个问题是:

>>> import paramiko
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31
, in <module>
    from paramiko.transport import SecurityOptions, Transport
  File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4
7, in <module>
    from paramiko.dsskey import DSSKey
  File "C:\Program Files\Python\lib\site-packages\paramiko\dsskey.py", line 26,
in <module>
    from Crypto.PublicKey import DSA
ImportError: No module named 'Crypto'
Run Code Online (Sandbox Code Playgroud)

实际上它非常有趣,因为我使用Windows并且它不关心大写.我将文件夹名称从crypto更改为Crypto,这个特殊问题消失了.

现在它想要winrandom:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31
, in <module>
    from paramiko.transport …
Run Code Online (Sandbox Code Playgroud)

python windows paramiko pycrypto

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

python 3.5上的PyCrypto

我为Python 3.3和3.4找到了一些PyCrypto安装程序,但没有为Python 3.5提供任何安装程序.

当我尝试使用PyCrypton时pip install,它说:

warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.  
Run Code Online (Sandbox Code Playgroud)

有没有办法在Windows 10中的Python 3.5上安装PyCrypto?谢谢!

python pycrypto

24
推荐指数
3
解决办法
6万
查看次数

Python中的RSA加密和解密

我需要在Python中使用RSA加密和解密的帮助.

我正在创建一个私钥/公钥对,用密钥加密消息并将消息写入文件.然后我正在从文件中读取密文并使用密钥解密文本.

我在解密部分遇到问题.正如您在下面的代码中所看到的,当我输入decrypted = key.decrypt(message)该程序时,解密的消息再次加密.好像它不是从文件中读取密文.

任何人都可以帮我写这段代码,所以解密从文件中读取密文,然后使用密钥解密密文?

import Crypto
from Crypto.PublicKey import RSA
from Crypto import Random

random_generator = Random.new().read
key = RSA.generate(1024, random_generator) #generate public and private keys

publickey = key.publickey # pub key export for exchange

encrypted = publickey.encrypt('encrypt this message', 32)
#message to encrypt is in the above line 'encrypt this message'

print 'encrypted message:', encrypted #ciphertext

f = open ('encryption.txt', 'w'w)
f.write(str(encrypted)) #write ciphertext to file
f.close()

#decrypted code below

f = open ('encryption.txt', 'r') …
Run Code Online (Sandbox Code Playgroud)

python encryption rsa pycrypto

23
推荐指数
4
解决办法
12万
查看次数

Pip错误:需要Microsoft Visual C++ 14.0

我刚刚运行了"pip install -U steem"命令,安装工作正常,直到它无法安装pycrypto.之后我做了"pip install cryptography"命令,因为我认为它是缺少的包.所以我的问题是,如何在没有pycrypto-error(或者另外还有pycrypto-package)的情况下安装steem,以及如何卸载我不需要的cryptography-Package.(我使用的是Windows 7和Python 3)

Requirement already up-to-date: python-dateutil in c:\users\***\appdata\lo
cal\programs\python\python36\lib\site-packages (from dateparser->maya->steem)
Collecting regex (from dateparser->maya->steem)
Downloading regex-2017.06.23-cp36-none-win_amd64.whl (245kB)
100% |????????????????????????????????| 245kB 499kB/s
Collecting pytzdata (from pendulum->maya->steem)
Downloading pytzdata-2017.2-py2.py3-none-any.whl (462kB)
100% |????????????????????????????????| 471kB 965kB/s
Installing collected packages: urllib3, idna, chardet, certifi, requests, pycryp
to, funcy, w3lib, voluptuous, diff-match-patch, scrypt, prettytable, appdirs, la
ngdetect, ruamel.yaml, humanize, tzlocal, regex, dateparser, pytzdata, pendulum,
maya, ecdsa, pylibscrypt, ujson, toolz, steem
Running setup.py install for pycrypto ... error
Complete output …
Run Code Online (Sandbox Code Playgroud)

python pycrypto

22
推荐指数
8
解决办法
7万
查看次数

使用pycrypto(RSA)签名和验证数据

我正在尝试熟悉pycrypto模块,但缺乏清晰的文档会使事情变得困难.

首先,我想了解签名和验证数据.有人可以提供一个如何写这个的例子吗?

python pycrypto

21
推荐指数
3
解决办法
4万
查看次数

如何在PyCrypto中使用X509证书?

我想用PyCrypto加密python中的一些数据.

但是我在使用时遇到错误key = RSA.importKey(pubkey):

RSA key format is not supported
Run Code Online (Sandbox Code Playgroud)

密钥生成时:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem
Run Code Online (Sandbox Code Playgroud)

代码是:

def encrypt(data):
    pubkey = open('mycert.pem').read()
    key = RSA.importKey(pubkey)
    cipher = PKCS1_OAEP.new(key)
    return cipher.encrypt(data)
Run Code Online (Sandbox Code Playgroud)

python openssl rsa pycrypto

21
推荐指数
1
解决办法
3万
查看次数

如何设置CFLAGS和LDFLAGS来编译pycrypto

我正在尝试将结构库安装到旧机器上./ usr/lib中有一些遗留库,例如libgmp.

(py27)[qrtt1@hcservice app]$ ls /usr/lib|grep gmp
libgmp.a
libgmp.so
libgmp.so.3
libgmp.so.3.3.3
libgmpxx.a
libgmpxx.so
libgmpxx.so.3
libgmpxx.so.3.0.5
Run Code Online (Sandbox Code Playgroud)

我已经在我的$ HOME/app中编译了libgmp 5.x,然后我尝试安装pycrypto(它是fab的依赖):

CFLGAS=-I/home/qrtt1/app/include LDFLGAS=-L/home/qrtt1/app/lib  pip install pycrypto
Run Code Online (Sandbox Code Playgroud)

我发现编译/链接选项中没有我的include或lib目录:

gcc -pthread -fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/home/qrtt1/app/include/python2.7 -c src/_fastmath.c -o build/temp.linux-i686-2.7/src/_fastmath.o
gcc -pthread -shared build/temp.linux-i686-2.7/src/_fastmath.o -lgmp -o build/lib.linux-i686-2.7/Crypto/PublicKey/_fastmath.so
building 'Crypto.Hash._MD2' extension
gcc -pthread -fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/home/qrtt1/app/include/python2.7 -c src/MD2.c -o build/temp.linux-i686-2.7/src/MD2.o
gcc -pthread -shared build/temp.linux-i686-2.7/src/MD2.o -o build/lib.linux-i686-2.7/Crypto/Hash/_MD2.so
building 'Crypto.Hash._MD4' extension
gcc -pthread -fno-strict-aliasing -fwrapv …
Run Code Online (Sandbox Code Playgroud)

python pip build fabric pycrypto

20
推荐指数
1
解决办法
2万
查看次数

如何使用ansible创建用户并设置密码?

文件是指我们GitHub的例子,但是这是一个有点稀疏而神秘.

它说:

# created with:
# crypt.crypt('This is my Password', '$1$SomeSalt')
password: $1$SomeSalt$UqddPX3r4kH3UL5jq5/ZI.
Run Code Online (Sandbox Code Playgroud)

crypt.crypt不会发出示例所示的内容.它还使用MD5.

我试过这个:

# python
import crypt
crypt.crypt('This is my Password', '$6$somereallyniceandbigrandomsalt$')
>> '$69LxCegsnIwI'
Run Code Online (Sandbox Code Playgroud)

但是用户的密码字段应该是这样的:

password: $6$somereallyniceandbigrandomsalt$UqddPX3r4kH3UL5jq5/ZI.
Run Code Online (Sandbox Code Playgroud)

其中包括三个$分隔符6(分隔它表示SHA-512哈希),盐和加密密码.

请注意,python crypt文档没有提及有关$ N格式的任何内容.

问题:

  1. 供应的盐是否crypt.crypt应该以尾随$结尾或以$ N $ SALT格式结束?

  2. Python文档是指DES,但是如何调用SHA-512或MD5以及它的文档在哪里?

  3. 我是否真的应该拿出输出crypt.crypt并切断前6 美元并使$ N $ SALT $ CRYPTED?这是ansible需要的吗?

cryptography pycrypto ansible

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

系统错误:必须为“#”格式定义 PY_SSIZE_T_CLEAN 宏

我找不到任何关于此的信息。我收到错误:

Traceback (most recent call last):
  File "/path/to/pwdb.py", line 265, in <module>
    password_db()
  File "/path/to/pwdb.py", line 73, in __init__
    self.cipher = AES.new(key,AES.MODE_ECB)
  File "/home/STACKOVERFLOW/.local/lib/python3.10/site-packages/Crypto/Cipher/AES.py", line 95, in new
    return AESCipher(key, *args, **kwargs)
  File "/home/STACKOVERFLOW/.local/lib/python3.10/site-packages/Crypto/Cipher/AES.py", line 59, in __init__
    blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
  File "/home/STACKOVERFLOW/.local/lib/python3.10/site-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
    self._cipher = factory.new(key, *args, **kwargs)
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
Run Code Online (Sandbox Code Playgroud)

我很确定它收到错误的行是:

self.cipher = AES.new(key,AES.MODE_ECB)
Run Code Online (Sandbox Code Playgroud)

该脚本不久前就开始工作了。PyCrypto 是否更新了其格式或其他内容?有谁知道如何解决这个问题?如果需要,我可以提供更多代码。

python pycrypto

19
推荐指数
3
解决办法
4万
查看次数