标签: pycrypto

python加密rsa问题

python Crypto包中的RSA加密/解密似乎有问题:

from Crypto.PublicKey import RSA
from os import urandom
def test(keylen, datalen, rand_len):
    k = RSA.generate(keylen)
    ok, fail = (0,0)
    for i in range(1000):
        a = urandom(datalen)
        if a == k.decrypt(k.encrypt(a, urandom(rand_len))):
            ok += 1
        else:
            fail += 1
    return ok, fail
Run Code Online (Sandbox Code Playgroud)

无论我做什么 keylen/datalen/rand_len 的组合,我都无法 100% 地解密。它只是我安装的加密吗?

>>> test(1024,128,0)
(853, 147)
>>> test(1024,127,0)
(996, 4)
>>> test(2048,127,0)
(994, 6)
Run Code Online (Sandbox Code Playgroud)

python cryptography rsa pycrypto

5
推荐指数
1
解决办法
1236
查看次数

使用PyCrypto解密带有RSA公钥的消息

我想用RSA公钥解密一条消息,PyCrypto我正在使用下面的代码,但是no private key在下面的代码中应该改变错误?

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64
licence_key="bla bla"
licence_key_in_bytes=licence_key.encode("utf-8")
encrypted=base64.b16decode(licence_key_in_bytes)
key = open("public_key", "r").read() 
rsakey = RSA.importKey(key)
rsakey = PKCS1_OAEP.new(rsakey)
decrypted_message= rsakey.decrypt(encrypted)
Run Code Online (Sandbox Code Playgroud)

python rsa public-key-encryption pycrypto

5
推荐指数
1
解决办法
6433
查看次数

pycrypto 安装:配置错误:无法运行 C 编译的程序

请对我温柔点。我已经搜索过该网站,我知道这个确切问题还有另一个答案,但是发布在那里的答案对我不起作用。

我正在尝试安装pycrypto,以便我可以开始paramiko工作。 Paramiko由于缺少pycrypto模块而失败。我试过使用pip install pycryptowhich 成功,但没有解决问题。

我试过安装二进制版本pycrypto,但没有解决问题。

现在我正在尝试构建pycrypto. 我有cygwin64mingw安装在我的机器上。最远的方法是

python setup.py build --compiler=mingw32
Run Code Online (Sandbox Code Playgroud)

这会出错,

checking whether we are cross compiling... configure: error: in `/cygdrive/c/Python27/pycrypto-2.6.1':
configure: error: cannot run C compiled programs.
Run Code Online (Sandbox Code Playgroud)

另一个答案建议删除路径中的空格。我曾尝试将路径简化为简单

c:\mingw;c:\python2.7;c:\cygwin64\bin
Run Code Online (Sandbox Code Playgroud)

结果没有改变?

有没有人可以指点我的解决方法?谢谢你。总体目标是开始paramiko工作。该paramiko错误是

ImportError: No module named Crypto.PublicKey
Run Code Online (Sandbox Code Playgroud)

python paramiko mingw32 pycrypto

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

python 3.6中安装pycrypto的问题

我试图使用pip在python 3.6.0上安装pysnmp(使用pycrypto),但是我遇到了一个错误:

命令""c:\ program files(x86)\ python36-32\python.exe"-u -c"import setuptools,tokenize; file ='C:\ Users\HOME-M~1\AppData\Local\Temp\pip-build-6l69kxa5\pycrypto\setup.py'; f = getattr(tokenize,'op en',open)(file); code = f.read().replace('\ r \n','\n'); f.close(); exec(compile(code,file,'exec'))"install --record C:\用户\ HOME-M~1\AppData\Local\Temp\pip-qq93gmf_-record\install-record.txt --single- version-external-managed --compile"在C:\ Users\HOME中失败并显示错误代码1 -M~1\AppData\Local\Temp\p ip-build-6l69kxa5\pycrypto \

我不是高级用户,我无法为这个问题找到解决方案.如果您知道如何解决它,请告诉我.Python 3.5.2很容易安装.

pycrypto pysnmp python-3.6

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

使用 Pycrypto 进行图像加密和解密

如何使用Pycrypto python 库加密图像?我在互联网上找到了一些文本加密示例,但我没有找到与图像相同的示例。谁能帮我?

python encryption pycrypto

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

如何在 Android Native Code 中使用 Keystore?

我需要加密一些由 C++ 编写的 android 本机服务创建的文件。我必须使用密钥库,但我不知道如何使用。有任何图书馆或文件吗?

java-native-interface android keystore pycrypto

5
推荐指数
1
解决办法
1506
查看次数

PyCrypto 安装错误(vc\cl.exe 无论如何都会失败)

我正在尝试安装 pyCrypto(通过 pip3 install pycrypto),但我不断收到此错误:

  Failed building wheel for pycrypto
  Running setup.py clean for pycrypto
Failed to build pycrypto
Installing collected packages: pycrypto
  Running setup.py install for pycrypto ... error
    Complete output from command c:\users\1007238\appdata\local\programs\python\python36-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\1007238\\AppData\\Local\\Temp\\pip-build-pm8w3iz2\\pycrypto\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\1007238\AppData\Local\Temp\pip-rd551f7l-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.6
    creating build\lib.win32-3.6\Crypto
    copying lib\Crypto\pct_warnings.py -> build\lib.win32-3.6\Crypto
Run Code Online (Sandbox Code Playgroud)

安装顺利,直到:

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD …
Run Code Online (Sandbox Code Playgroud)

python pycrypto

5
推荐指数
2
解决办法
3964
查看次数

使用由 M2Crypto 生成的加密/pycrypto 进行私有加密(生成签名)

我正在尝试为有效负载生成签名。我的技术栈是 Python3.6,它提供了密码学或 pycrypto 之类的库。问题是,我无法private_encrypt在密码学等库中重新创建M2Crypto的功能。M2Crypto生成的签名被我的对端接受为有效签名,而两个库生成的签名被丢弃,表示签名无效。

我使用 python2.7 创建了一个最小的 POC 来说明我的情况。

import base64

payload = b'This is the payload for which I wish to generate signature'

### Using library cryptography ###
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import padding

with open("private_key", "rb") as key_file:
    private_key = serialization.load_pem_private_key(
        key_file.read(),
        password=None,
        backend=default_backend()
    )


signature = private_key.sign(
    payload,
    padding=padding.PKCS1v15(),
    algorithm=hashes.SHA1()
)
encoded_signature = base64.b16encode(signature)
print("Signature using cryptography - ", encoded_signature)


### Using library pycrypto ###
from Crypto.Signature import …
Run Code Online (Sandbox Code Playgroud)

python rsa m2crypto pycrypto python-cryptography

5
推荐指数
0
解决办法
380
查看次数

Python Cryptography 导出密钥到 DER

过去使用 PyCrypto 时,我能够执行以下操作来生成 RSA 公钥的指纹:

rsa_cipher = PKCS1_v1_5.new(RSA.importKey(pub_rsa_key))
hashlib.sha1(rsa_cipher._key.exportKey("DER")).hexdigest()
Run Code Online (Sandbox Code Playgroud)

如果没有 PyCrypto,我怎样才能达到同样的目的?


编辑

我提供的pub_rsa_key是一个.perm文件的内容,即:

-----BEGIN PUBLIC KEY-----
MII...AB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

PyCrypto 被认为是不安全的,不再维护,所以我切换到 Python 的密码学,但它似乎没有足够的功能。

  • 我在 Pythons Cryptography API 中是否遗漏了类似的功能?
  • PyCryptoDome 是否可能是 PyCrypto 用于实现此功能的值得(稳定且安全)的替代品?
  • 如果以上都没有,是否可以通过自写函数以 DER 格式导出该密钥?

执行导出的任何文档或搜索词都会有所帮助。


编辑 2
Maarten Bodewes 的评论(谢谢)把我带到了一个似乎是我正在寻找的地方。但是DER导出的结果不同:

# Python 3.7 using Cryptography
from cryptography.hazmat.primitives import serialization

with open('pub_key.perm', 'rb') as key_file: 
    public_key = serialization.load_pem_public_key(key_file.read(), backend=default_backend())

pub_der = public_key.public_bytes(encoding=serialization.Encoding.DER, format=serialization.PublicFormat.PKCS1)

print(sha1(pub_der).hexdigest())
# gives "d291c142648b7........c2f4676f4213203c4bd"
Run Code Online (Sandbox Code Playgroud)

在哪里

# Python 2.7 using PyCrypto
from Crypto.Cipher …
Run Code Online (Sandbox Code Playgroud)

python cryptography rsa pycrypto python-cryptography

5
推荐指数
1
解决办法
2306
查看次数

OpenSSL 的 Python 部分链命令

我正在尝试使用OpenSSLPython 中的模块进行证书验证。

我有窗口的openssl命令为:

openssl verify -partial_chain -CAfile Intermediate.pem UserCert.pem

你能建议我在 Python 中等效吗?

要求:这需要由OpenSSL或任何 Python3 模块完成。使用os.system将解决问题,但这不会满足要求。

python openssl pyopenssl x509certificate pycrypto

5
推荐指数
0
解决办法
169
查看次数