変更暗号化アルゴリズム (理論的には私が開発したもの) を実装しようとしていますが、要件の一部として、RSA キー ペアを生成してデータベースに保存し、後で暗号化プロセスの一部として取得できるようにする必要があります (暗号化されたメッセージと一緒に安全に送信できるように、セッション キーを暗号化するためにのみ使用されます)。
RSA キー ペアを生成する私の試みは機能しているように見えますが、コードが実行されるたびに新しいペアを提供するのではなく、同じ値を何度も生成し続けます。私は何を間違えましたか?また、これらの値がマシン自体に依存している場合 (したがって、同じ値が表示されている場合)、キー ペアの生成を提供された電子メール アドレスにリンクして、新しい電子メール アドレスが入力されるたびに異なる RSA キー ペアが出力されるようにする方法はありますか? ?
次のコードは、キーペアを生成するための私の試みです:
import java.security.*;
import java.security.*;
/**
* @author Speedy gonzales
*/
public class test {
public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded();
StringBuffer retString1 = new StringBuffer();
retString1.append("[");
for (int puk = 0; puk < publicKey.length; ++puk) {
retString1.append(publicKey[puk]);
// retString1.append(", ");
}
retString1 = retString1.delete(retString1.length()-2,retString1.length());
retString1.append("]");
System.out.println(retString1);
byte[] privateKey = keyGen.genKeyPair().getPrivate().getEncoded();
StringBuffer retString2 = new StringBuffer();
retString2.append("[");
for (int pri = 0; pri < privateKey.length; ++pri) {
retString2.append(privateKey[pri]);
// retString2.append(", ");
}
retString2 = retString2.delete(retString2.length()-2,retString2.length());
retString2.append("]");
System.out.println(retString2);
}
}
ありがとう