//生成算法
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
//keyPairGenerator.initialize()不传入SecureRandom会随机生成,在多服务器时传入固定SecureRandom
SecureRandom secureRandom = new SecureRandom("".getBytes());
//初始化密钥对生成器,64整数倍
keyPairGenerator.initialize(2048, secureRandom);
//生成密钥对
KeyPair keyPair = keyPairGenerator.genKeyPair();
//获取私钥公钥
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
//编码
byte[] privateKeyEncoded = privateKey.getEncoded();
byte[] publicKeyencoded = publicKey.getEncoded();
//解码算法
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
//私钥解码
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(privateKeyEncoded);
PrivateKey privateKey1 = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
//公钥解码
X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicKeyencoded);
PublicKey publicKey1 = keyFactory.generatePublic(x509EncodedKeySpec);
RSA
最新推荐文章于 2023-09-11 17:38:02 发布