私はRSA暗号化のために私の最初の公開鍵/秘密鍵のペアを生成しようとしています。これは初めてのことですが、次のコードを使用して、さまざまなチュートリアルやWebサイトを調べることにしました。私のコードでエラーが出ることはありませんが、強制的に終了します。私の輸入品を含めてすべてが掲載されています。私のコードがキーを生成していないと私にエラーを出す理由を理解できるように助けてください。そして、はい、私は(私たちは、あなたがいることをデバッグするために、このクラスを使用する場所を確認する必要があると思います)あなたの問題を引き起こしているのか分からない公開鍵/秘密鍵を生成する前にRSA暗号化forceclosing
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;
public class RSA {
public static void GenerateKeyPair() {
try {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(4096);
KeyPair kp = kpg.genKeyPair();
KeyFactory fact = KeyFactory.getInstance("RSA");
RSAPublicKeySpec pub = fact.getKeySpec(kp.getPublic(),
RSAPublicKeySpec.class);
RSAPrivateKeySpec priv = fact.getKeySpec(kp.getPrivate(),
RSAPrivateKeySpec.class);
saveToFile("public.key", pub.getModulus(), pub.getPublicExponent());
saveToFile("private.key", priv.getModulus(),
priv.getPrivateExponent());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void saveToFile(String fileName, BigInteger mod,
BigInteger exp) throws Exception {
ObjectOutputStream oout = new ObjectOutputStream(
new BufferedOutputStream(new FileOutputStream(fileName)));
try {
oout.writeObject(mod);
oout.writeObject(exp);
} catch (Exception e) {
throw new Exception("error", e);
} finally {
oout.close();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.BLAH"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".UUIDActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Installation"
android:label="@string/app_name" >
</activity>
<activity
android:name=".RSA"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
@Obliviatorあなたの質問でチェックするのは、「はい、私はマニフェストで宣言しました」ということです。つまり、アクティビティとして拡張されていないマニフェストでこのクラスを宣言しましたか?エラーLast.Soに投稿すると、あなたのマニフェストファイルのコードを表示することができ、あなたのアクティビティクラスのどこにいるかもしれません。 – Herry
私はマニフェストを投稿しました –