我正在使用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?支持哪些格式?
导入公钥工作正常,但它没有加密.
我有以下模型类层次结构:
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