Flu*_*ffy 3 sqlite django pycrypto
我在Django中使用PyCrypto(Python 2.7,Django 1.5m SQLite),我想创建一个存储RSAkey对象的字段.我怎样才能做到这一点?转换为字符串并返回似乎很容易出错,因为随机字节在那里,我不相信这是一个好方法.我能够通过base-64编码将char中的随机密钥存储在charfield中(如下所示:Random.new().read(16).encode('base64')).但是一对钥匙?我在Django的当前开发版本中看到,二进制字段被合并,但我们需要坚持1.5.
真的很感激任何帮助.
谢谢Gerd
您只需要存储私钥,因为您始终可以从私有密钥生成公钥.
>>> from Crypto.PublicKey import RSA
>>> RSAkey = RSA.generate(1024)
Run Code Online (Sandbox Code Playgroud)
公钥可以导出
>>> RSAkey.publickey().exportKey()
Run Code Online (Sandbox Code Playgroud)
要保存私钥,您可能希望将其转换为包含该exportKey()方法的文本并将其存储在django-TextField中:
>>> RSAkey.exportKey()
'-----BEGIN RSA PRIVATE KEY-----\nMI...-----END'
Run Code Online (Sandbox Code Playgroud)
将文本转换回RSA密钥对象也很容易:
>>> RSA.importKey('-----BEGIN RSA PRIVATE KEY--- ....')
Run Code Online (Sandbox Code Playgroud)
得到一个RSAobj就像我最初生成的一样.
如果您打算在其他区域使用该功能,您也可以通过创建自己的模型字段类来尝试"艰难的方法".请参阅https://docs.djangoproject.com/en/1.5/howto/custom-model-fields/
| 归档时间: |
|
| 查看次数: |
2739 次 |
| 最近记录: |