5

Django (Python 2.7、Django 1.5m SQLite) 内で PyCrypto を使用しています。RSAkey オブジェクトを格納するフィールドを作成したいと考えています。これどうやってするの?文字列への変換とその逆はかなりエラーが発生しやすいようで、ランダムなバイトがそこにあるため、それが良いアプローチであるとは信じていません。ベース64でエンコードすることにより、ランダムキーをcharフィールドに格納できました(次のように: Random.new().read(16).encode('base64'))。しかし、キーペア?Django の現在の開発バージョンでは、バイナリ フィールドが組み込まれているのを見ましたが、1.5 に固執する必要があります。

どんな助けでも本当に感謝します。

ありがとうゲルト

4

1 に答える 1

10

いつでも秘密鍵から公開鍵を生成できるため、秘密鍵を保存するだけで済みます。

>>> from Crypto.PublicKey import RSA
>>> RSAkey = RSA.generate(1024)

公開鍵は次の方法でエクスポートできます

>>> RSAkey.publickey().exportKey()

秘密鍵を保存するには、exportKey()メソッドを使用してテキストに変換し、django-TextField に保存します。

>>> RSAkey.exportKey()
'-----BEGIN RSA PRIVATE KEY-----\nMI...-----END'

テキストを RSA キー オブジェクトに戻すのも簡単です。

>>> RSA.importKey('-----BEGIN RSA PRIVATE KEY--- ....')

最初に生成したような RSAobj を取得します。

他の領域でも機能を使用する場合は、独自のモデル フィールド クラスを作成するという「難しい方法」を試すこともできます。https://docs.djangoproject.com/en/1.5/howto/custom-model-fields/を参照してください。

于 2013-04-25T14:33:45.780 に答える