との間の接続を保護しようとAndroid app
しJava Web Service
ていRSA private/public.key
ます。シナリオ全体をお話ししましょう。Androidアプリをダウンロードしてモバイルデバイスにインストールすると、public.keyを取得するためにWebサービスに接続するのは1回だけです。その後、Androidアプリはこのpublic.keyをWebサービスとのすべての通信に使用します。これまでのところ、同じアプリケーションでpublic.keyを使用して暗号化し、秘密鍵を使用して復号化することに成功しました。しかし、今度は、公開鍵をAndroidデバイスのクライアントに配布し、この公開鍵ファイルを保存して使用できるようにする必要があります。私の2番目のシナリオについてyuに話させてください。また、これらの秘密鍵と公開鍵も、たとえば2か月ごとに更新する必要があります。公開鍵が更新されたことをクライアントに通知し、新しいpublic.keyを送信するにはどうすればよいですか。ありがとうございます。
以下のコードは、public.keyをリクエストするためのものです。Inputstreamに入ることができますが、public.keyを作成してその中にコンテンツを書き込むことができません。
public ConnectService(String sngUrl,Context context){
try {
URL url = new URL(sngUrl);
URLConnection conection = url.openConnection();
conection.connect();
InputStream input = new BufferedInputStream(url.openStream(), 8192);
System.out.println(convertStreamToString(input));
String dirPath = context.getFilesDir().getAbsolutePath() + File.separator + "key";
File keyDir = new File(dirPath);
if (!keyDir.exists())
keyDir.mkdirs();
OutputStream output = new FileOutputStream(keyDir+"/public.key");
byte data[] = new byte[1024];
while ((input.read(data)) != -1) {
output.write(data);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
System.out.println("HATA: "+e.getMessage());
e.printStackTrace();
}
}
EXCEPTION : java.io.FileNotFoundException: /data/data/com.shoponway/files/key/public.key