5

私たちは rsa キーを生成しており、Linux ボックスの ~/.ssh フォルダーで見慣れているように、それらを公開および非公開の base64 ハッシュとして保存したいと考えています。

ただし、RSA プリミティブ (n、e、および d の値) を扱っています。

これらの値から base64 ハッシュを生成するにはどうすればよいですか? 逆もまた同様です(明らかでない場合)。

4

3 に答える 3

2

base64 は、ハッシュ アルゴリズムではなく、テキストとして表されるバイナリ データのエンコード方式です。フィンガープリントについて言及している場合、それは MD5 です。

フィンガープリントと base64 でエンコードされたデータの両方について、 Twisted の Conch 実装を調べたり、再利用したりすることもできます。

于 2012-04-17T08:16:08.553 に答える
1

適切な ASN.1 エンコーディングを使用してから、base64 を使用する必要があります。

残念ながら、適切な ASN.1 エンコーディングが何であるかはわかりません (ASN.1 自体はよくわかりません)。openssl に組み込まれていますが、コマンド ラインからアクセスする方法が見つかりません。http://www.openssl.org/docs/crypto/RSA_print.htmlおよびhttp://www.openssl.org/docs/crypto/rsa.htmlを使用して C から記述できます。

タグに python があります。pyopenssl は openssl をラップし、より簡単なパス ( https://code.launchpad.net/pyopenssl ) を提供する可能性がありますが、ソースを見ると、レベルが高すぎるようです (RSA 構造体を公開していないようです)。

ASN.1 を話す場合 (またはhttp://pyasn1.sourceforge.net/のようなライブラリを持っている場合) は、これだけで十分です - https://polarssl.org/kb/cryptography/asn1-key -structures-in-der-and-pem

(私はこれがかなり不完全であることを理解しています - 私は報奨金を探しているのではなく、それで十分な場合に備えて私が知っていることをダンプしているだけです - 基本的に「DERのASN.1」はあなたが欠けているビットです;それは構造を定義するものです読み返すときに異なる部分を分離できるようにするため)

于 2013-11-04T23:15:43.747 に答える