私はRSA秘密鍵指数の16進数を常に固定長、つまり512バイトにする必要があります。このために指数自体は2045年から2048年の文字でなければなりません。そして、唯一そのヘクスがここで長さ512のものであろうコードは次のとおりです。Javaで与えられたRSA秘密鍵の固定長指数を生成する方法は?
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.spec.RSAPrivateKeySpec;
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp1 = kpg.genKeyPair();
PrivateKey privateKey1 = kp1.getPrivate();
KeyFactory keyFac = KeyFactory.getInstance("RSA");
RSAPrivateKeySpec pkSpec1 = keyFac.getKeySpec(privateKey1, RSAPrivateKeySpec.class);
BigInteger encPrivateKeyExponent = pkSpec1.getPrivateExponent();
String encPrivateKeyExponentHex = encPrivateKeyExponent.toString(16); // hex of exponent
私が直面しています問題は、このです:コードが実行されるたびに、encPrivateKeyExponentHexは、509の範囲で(長さが変化します-512バイト)の長さに依存します。encPrivateKeyExponent。毎回正確に512バイトになるように16進数の長さが必要です。これを確実にする方法はありますか?
アプローチと提案に感謝します!心に留めておきます。 – Pratap