0

Java と JavaScript の間の暗号化のソリューションを実装しようとしています。

Java側では、次の静的ブロックがあります:

public class Manager {

  public static KeyPairGenerator keyPairGenerator;
  public static KeyPair keyPair;

  static{       
      try {
        keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(1024);
        keyPair = keyPairGenerator.genKeyPair();
      } catch (NoSuchAlgorithmException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
  }
  ...
}

サーバーが起動して実行されると、これは基本的に新しいキーペアを生成します...

次に、JSON 形式で公開鍵を渡します。

<%
JSONObject json = new JSONObject();
json.put("publicKey", "-----BEGIN PUBLIC KEY-----" + Base64.encodeBase64URLSafeString(Manager.keyPair.getPublic().getEncoded()) + "-----END PUBLIC KEY-----");
%>

そのキー (1024 ビットまたは 2048 ビット) を使用して、クライアントのフォームからの情報をエンコードしたい... RSA 1024 ビット、base64 でエンコードされた公開キーを使用して情報をエンコードする方法を知っている人はいますか?

私はjCryptionを試してみましたが、他のライブラリを無駄にしました...

4

1 に答える 1

0

公開鍵を証明書として送信しない場合は、モジュラスと公開指数を別々に送信した方がよいでしょう (たとえば、別々のフィールドでエンコードされた base 64)。デフォルトのエンコーディングでは、X509 SubjectPublicKeyInfo ASN.1 構造が生成されます。これを JavaScript ライブラリで解析する必要があります。

盗聴者からのみ保護していることに注意してください。中間者攻撃は、公開鍵を独自のものに置き換えることができるため、依然として実行可能です. もちろん、RSA 1024 は今では時代遅れです。幸いなことに、あなたを保護する TLS/SSL がまだ残っています。

于 2012-06-29T00:23:52.197 に答える