小编STF*_*STF的帖子

如何在PyCrypto中使用加密的RSA私钥?

我正在使用OpenSSL生成密钥,从stdin提供密码:

openssl genpkey -algorithm RSA -out private-key.pem -outform PEM -pass stdin -des3 -pkeyopt rsa_keygen_bits:4096
Run Code Online (Sandbox Code Playgroud)

键然后看起来像:

-----BEGIN ENCRYPTED PRIVATE KEY-----
XXX...
-----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

我的Python代码如下:

from Crypto.PublicKey import RSA
# ...
f = open('private-key.pem', 'r')
r = RSA.importKey(f.read(),  passphrase='some-pass')
f.close()
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外:

  File "/usr/lib/python2.7/dist-packages/Crypto/PublicKey/RSA.py", line 665, in importKey
    return self._importKeyDER(der)
  File "/usr/lib/python2.7/dist-packages/Crypto/PublicKey/RSA.py", line 588, in _importKeyDER
    raise ValueError("RSA key format is not supported")
ValueError: RSA key format is not supported
Run Code Online (Sandbox Code Playgroud)

怎么了?

是否可以生成加密的RSA密钥,将其存储在文件中,然后将其与PyCrypto一起使用?是否可以使用OpenSSL?支持哪些格式?

导入公钥工作正常,但它没有加密.

python encryption rsa pycrypto private-key

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

Python/Django中多个抽象模型继承中的场菱形图案

我有以下模型类层次结构:

from django.db import models

class Entity(models.Model):
    createTS = models.DateTimeField(auto_now=False, auto_now_add=True)

    class Meta:
        abstract = True

class Car(Entity):
    pass

    class Meta:
        abstract = True

class Boat(Entity):
    pass

class Amphibious(Boat,Car):
    pass
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不适用于Django:

shop.Amphibious.createTS: (models.E006) The field 'createTS' clashes with the field 'createTS' from model 'shop.boat'.
Run Code Online (Sandbox Code Playgroud)

即使我宣布船抽象,它也无济于事:

shop.Amphibious.createTS: (models.E006) The field 'createTS' clashes with the field 'createTS' from model 'shop.amphibious'.
Run Code Online (Sandbox Code Playgroud)

是否可以使用具有多重继承的模型类层次结构和声明某些字段的公共基类(models.Model子类)?

python django multiple-inheritance diamond-problem python-3.x

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