質問

私はapenpgpjs( openpgp のJavaScript Port)で遊んでいます。 。それをテストするには、データベースからキーペアと暗号化されたデータを保存および取得するための単純なWebアプリケーションに取り組んでいます。

OpenPGPJSには「装甲」キー(テキストとして出力されたバイナリキー)を生成するオプションがあるため、データベース内のそのようなものとして保存したいのですが。しかし、キーペアを生成しながら、私はそれらが固定長さではないことに気づいた(私が誤って想定したので)。キーの可変長には、データベース内のフィールドのサイズに対して選択する必要があるものに混乱しています。

誰かがOpenPGPで次の疑問を明確にすることができます:

- > OpenPGP '装甲'キーが持つことができる最大サイズは何ですか?
- >暗号化されたデータのサイズに基づいて算出された暗号化データのサイズは、
- >一般的なものは何ですか、そのようなキーをデータベースに保存するための練習(もしあれば)を推奨します。

PS:私は暗号化のためのJavaScriptを使用しているPtalles を読んで理解しています。だからあなたはその警告をスキップすることができます。 :)

:コメントに基づいて、私が知りたいことについてあいまいさを曖昧にするために質問を編集しました。

役に立ちましたか?

解決

両方の長さの予測(public / privision、conter)キーと暗号化データは不可能です。それらをデータベースに保存したい場合は、BLOBまたはTEXTVARCHARではなく、索引を必要とせず、かなりスパースデータレイアウトで終了する)を行います。照会する必要がある場合は、通常の正規化をあきらめて、キーID(またはフィンガープリント)をVARCHARとして個別に保存したい場合があります。

ASCII装甲データは扱いやすいですが、バイナリデータははるかにコンパクトです。


暗号化データの場合、暗号化された長さは入力に大きく依存しているだけでなく、どの暗号化と圧縮アルゴリズムも選択されています - OpenPGPはそれらの多くを許可します。圧縮が(かなり)ストレージを増やすべきではなく、対称暗号化は少なくとも等しい場合には少なくともサイズが直線的になり、メタデータが多かれ少なかれ固定サイズであるはずです。アルゴリズム。データベースに保存するために、これはおそらく長さが妥当なインラインストレージのために大きすぎるので無関係です。

キーパッケージの場合、保存するものは異なります.public主キーに加えて、通常、いくつかのパブリックサブキーが保存されます(実際には暗号化に使用されます)。公開鍵には、ユーザーIDが含まれていますが、イメージ、おそらくいくつかの構成、失効証明書、および着信シグネチャを含みます。公開鍵は一般的に大きく成長することができ、最大サイズで信頼しません。秘密鍵と同じです。通常は公開鍵がバンドルされています。サイズは理論的には任意の大きさになることができます(少なくとも特定のRFCの制限を認識していません)。

他のヒント

キーの長さはあなたが選択したものです - 現在の推奨事項と共に行くと、おそらく4096ビット。Base64それをエンコードしてVARCHARとして保存します。

暗号化データの長さは完全に変数です。IIWM B Base64はこれをエンコードしてディスクに書き込みます。実際のデータの代わりに、結果のファイル名をテーブルに保存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top